【发布时间】:2015-09-11 15:46:34
【问题描述】:
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
void main()
{
umask(0000);
creat("a.txt",666);
}
我的预期输出是,使用名称“a.txt”创建的文件,权限为“rwrwrw”。但是,输出如下。
输出:
$ ls -l a.txt
--w--wx-wT 1 mohanraj mohanraj 0 Sep 11 19:04 a.txt
$
umask 设置为 0。因此,我希望该文件是使用 666 的默认文件权限创建的。但是,它提供了一些其他输出。所以, umask 在内部是如何工作的。以及如何获得预期的结果。
【问题讨论】:
-
在这里提问之前您阅读umask(2)了吗?
-
我的一位同事在代码中使用了上面的示例,我想为了将来的读者的利益,我想提一下
umask(0000);可以简化为umask(0);。