umask函数原型:
#include <sys/stat.h>
mode_t umask(mode_t mask);
分析:
-
在进程创建一个新的文件或目录时,如调用open函数创建一个新文件,新文件的实际存取权限是mode与umask按照 mode&~umask运算以后的结果。umask函数用来修改进程的umask。
1. 测试代码:
#include <stdio.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>#define RWRWRW (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)int main()
{umask(0);if (creat("foo", RWRWRW) < 0) {perror("creat error");exit(1);}umask(S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);if (creat("bar", RWRWRW) < 0) {perror("creat error");exit(1);}return 0;
}
输出结果: