C语言中的UMASK函数

C语言中的UMASK函数,c,linux,unix,umask,C,Linux,Unix,Umask,umask设置为0。因此,我希望该文件是使用666的默认文件权限创建的。但是,它提供了一些其他输出。所以 umask内部如何工作。我怎样才能得到预期的结果呢 指定的文件创建模式为十进制格式。文件创建模式通常以八进制指定,因此您应该在数字前面加一个前导0,这告诉编译器它是一个八进制常量 $ ls -l a.txt --w--wx-wT 1 mohanraj mohanraj 0 Sep 11 19:04 a.txt $ Decimal 666=八进制1232,与您得到的结果匹配 请参阅您的友好

umask设置为0。因此,我希望该文件是使用666的默认文件权限创建的。但是,它提供了一些其他输出。所以
umask内部如何工作。我怎样才能得到预期的结果呢

指定的文件创建模式为十进制格式。文件创建模式通常以八进制指定,因此您应该在数字前面加一个前导0,这告诉编译器它是一个八进制常量

$ ls -l a.txt 
--w--wx-wT 1 mohanraj mohanraj 0 Sep 11 19:04 a.txt
$
Decimal 666=八进制1232,与您得到的结果匹配


请参阅您的友好手册页(
man 2 umask
)或。

您指定的文件创建模式为十进制格式。文件创建模式通常以八进制指定,因此您应该在数字前面加一个前导0,这告诉编译器它是一个八进制常量

$ ls -l a.txt 
--w--wx-wT 1 mohanraj mohanraj 0 Sep 11 19:04 a.txt
$
Decimal 666=八进制1232,与您得到的结果匹配

请参阅您的友好手册页(
man 2 umask
)或

--w——wx重量

1*512+2*64+3*8+2=666

它完全按照你的要求做了。尝试改用
0666

--w——wx重量

1*512+2*64+3*8+2=666


它完全按照你的要求做了。尝试使用
0666

在询问之前,您阅读了吗?因为我的一位同事在代码中使用了上述示例,我想为了未来读者的利益,我应该提到
umask(0000)可以简化为
umask(0)
。您在询问之前阅读了吗?因为我的一位同事在code中使用了上述示例,为了将来读者的利益,我想我应该提到
umask(0000)可以简化为
umask(0)
creat("a.txt",0666);