【发布时间】:2016-04-29 15:03:42
【问题描述】:
考虑这行代码:
file_desc = open(file, O_RDWR | O_CREAT | O_EXCL, 0444);
当您说使用 O_RDWR 访问模式打开它时,如何以所有者/组/其他(0444)的只读权限打开“文件”? 谢谢
【问题讨论】:
考虑这行代码:
file_desc = open(file, O_RDWR | O_CREAT | O_EXCL, 0444);
当您说使用 O_RDWR 访问模式打开它时,如何以所有者/组/其他(0444)的只读权限打开“文件”? 谢谢
【问题讨论】:
来自open 手册页:
请注意,此模式仅适用于以后对新创建文件的访问;创建只读文件的 open() 调用很可能会返回一个读/写文件描述符。
所以创建文件的进程可以写入,但其他进程不能(除非它先更改权限)。这确保了创建过程可以填充填充,而不必担心其他一些过程会无意中覆盖它。如果没有此功能,则必须创建具有写入权限的进程,将其填充,然后删除写入权限,这将允许一个窗口,在此期间其他进程可以覆盖它。
【讨论】: