根据OpenGroup,如果使用O_CREAT调用open()并且文件尚不存在,则将使用指定为函数中第三个参数的文件权限创建它:
应创建文件;文件的用户ID应设置为 进程的有效用户ID;文件的组ID应为 设置为文件父目录的组ID或有效 进程的组ID;和访问权限位(见 )文件模式应设置为第三个值 参数类型为mode_t
是否可以使用fopen()执行类似的操作,以便我可以在创建时设置新文件的权限,而不必在之后chmod它?
答案 0 :(得分:6)
来自fopen(3)
手册页:
任何创建的文件都将具有模式
S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH (0666)
,由进程的umask值修改(请参阅umask(2))。
所以umask(2)
是你的朋友。