考虑这行代码:
file_desc = open(file, O_RDWR | O_CREAT | O_EXCL, 0444);
你怎么打开文件'对于所有者/组/其他(0444)的只读权限,而你说用O_RDWR访问模式打开它? 感谢名单
答案 0 :(得分:3)
来自open
手册页:
请注意,此模式仅适用于将来访问新创建的文件;创建只读文件的open()调用可能会返回一个读/写文件描述符。
因此创建文件的进程可以写入它,但是其他一些进程不能写入(除非它首先更改权限)。这可以确保创建过程可以填充填充,而不必担心其他一些过程无意中覆盖它。如果没有此功能,则必须使用写入权限创建进程,将其填入,然后删除写入权限,这将允许一个窗口,在此期间某些其他进程可能会覆盖它。