mrg*_*mrg 1 c unix linux umask
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
void main()
{
umask(0000);
creat("a.txt",666);
}
Run Code Online (Sandbox Code Playgroud)
我的预期输出是名称为“ a.txt”且许可为“ rwrwrw”的文件。但是,输出如下。
输出:
$ ls -l a.txt
--w--wx-wT 1 mohanraj mohanraj 0 Sep 11 19:04 a.txt
$
Run Code Online (Sandbox Code Playgroud)
umask设置为0。因此,我希望使用默认文件权限666创建该文件。但是,它会提供一些其他输出。因此,umask在内部如何工作。以及我如何获得预期的结果。
您指定的文件创建模式为十进制格式。文件创建模式通常以八进制指定,因此您应在数字前加0开头,以告诉编译器它是八进制常量。
creat("a.txt",0666);
Run Code Online (Sandbox Code Playgroud)
十进制666 =八进制1232,与您得到的结果相匹配。
| 归档时间: |
|
| 查看次数: |
553 次 |
| 最近记录: |