fchmod之后写入的预期行为是什么?

时间:2017-04-06 08:45:52

标签: c file posix file-permissions

如果我打开并创建一个用于r / w访问的文件,那么随后使用fchmod删除写访问权限在fchmod调用之后和关闭/重新打开该文件之前,在同一文件描述符上写入的预期行为是什么? / p>

这是由POSIX指定的吗?

是否仅在打开时检查权限?

2 个答案:

答案 0 :(得分:3)

对于完全符合要求的实现,似乎在打开文件后更改文件的权限应该对已经打开的文件描述符没有影响。

从版本7 chmod()/fchmodat() documentation

  

申请使用

     

...

     

文件上任何进程当前打开的任何文件描述符都可以   如果文件的模式更改为值,则可能变为无效   哪会拒绝访问该进程。这种情况就是这样   可能发生在无状态文件系统上。 此行为不会   发生在一致的环境中

这与POSIX的第6版不同,其中the chmod() documentation states

  

调用时打开的文件对文件描述符的影响   chmod()是实现定义的。

答案 1 :(得分:1)

来自chmod上的参考页面(其行为与fchmod相同):

  

在调用chmod()时打开的文件对文件描述符的影响是实现定义的。

因此,这不是由POSIX定义的,您必须查阅您的平台文档。