打开文件函数(fopen)创建权限模式

4
根据OpenGroup的规定,如果使用O_CREAT选项调用open()函数且该文件不存在,则会创建一个文件,并将第三个参数指定的文件权限设置为该文件的权限:

文件将被创建;文件的用户ID应设置为进程的有效用户ID;文件的组ID应设置为文件所在目录的组ID或进程的有效组ID;文件模式的访问权限位(参见)应设置为以mode_t类型为取值的第三个参数的值。

那么,是否可以通过fopen()函数实现类似的功能,即在创建新文件时设置权限,而无需在创建后再执行chmod操作呢?

如果您需要不同的权限,直接使用chmod会更容易。否则可以使用umask设置默认值。 - teppic
1个回答

6

fopen(3)的手册页面上可以看到:

任何创建的文件都将具有模式S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH (0666),这受进程的umask值的影响(请参见umask(2))。

因此,umask(2)是您的好帮手。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接