2016-04-29 51 views
1

考虑这行代码:创建和打开文件的Linux编程

file_desc = open(file, O_RDWR | O_CREAT | O_EXCL, 0444); 

你怎么能打开“文件”与只读所有者/组权限/其他(在0444),而你说用O_RDWR打开它访问模式? 感谢名单

回答

3

open手册页:

请注意,此模式仅适用于未来的新创建的文件的访问;创建只读文件的open()调用可能会返回读/写文件描述符。

所以创建文件的过程可以写入它,但其他一些进程不能(除非它首先更改权限)。这确保了创建过程可以填充填充而不用担心其他过程无意中覆盖它。如果没有这个功能,它将不得不创建具有写入权限的进程,填充它,然后删除写入权限,这将允许一个窗口,在此期间其他进程可以覆盖它。

+0

谢谢巴尔玛。 –

+0

如果一切都失败了,请阅读手册:-) – pm100