linux文件创建和umask()

时间:2014-03-07 01:53:35

标签: c linux file-io fopen

我有一个写入日志文件的程序。当然,必须创建这个日志文件和文件夹,我的程序必须以root身份运行,因此它始终使用rw -------权限创建文件夹,并且不能以普通用户的身份进行读写。我不希望这样,所有用户都应该具有读写权限。

我的在线搜索引导我到umask(000);但它只适用于文件而不适用于文件夹。创建的文件夹对root只有rw权限,而对于所有其他文件都没有,而该文件具有我设置的umask权限。

任何人都知道为什么会这样?

1 个答案:

答案 0 :(得分:1)

我会尝试使用chmod()库中的<sys/stat.h> “[...]使用指定的权限位并忽略文件创建掩码。”,请参阅{ {3}}了解更多信息。

#include <sys/stat.h> 
#include <stdio.h>

int main(void) {
  if(chmod("test", 0777) != 0)
    printf("Error while setting permissions on directory.");

  return 1;
}