C - fopen()创建权限模式



根据OpenGroup,如果使用O_CREAT调用open()并且文件不存在,则将使用函数中第三个参数指定的文件权限创建该文件:

文件将被创建;文件的用户ID设置为进程的有效用户ID;文件的组ID为设置为文件父目录的组ID或有效的组IDgroup进程ID;和访问权限位(见)的值应设置为第三个的值参数作为类型mode_t

是否有可能使用fopen()做类似的事情,以便我可以在创建时设置新文件的权限,而不必在之后chmod它?

fopen(3)手册页:

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

所以umask(2)是你的朋友

最新更新