umask函数为进程设置文件模式创建屏蔽字,并返回以前的值。
#include <sys/stat.h>
mode_t umask( mode_t cmask);
返回值:以前的文件模式创建屏蔽字
参数cmask是由S_IRUSR、S_IWUSR、S_IXUSR、S_IRGRP、S_IWGRP、S_IXG、S_IROTH、S_IWOTH及S_IXOTH这9个常量中的若干个按位“或”构成的。
在进程创建一个新文件或新目录时,就一定会使用文件模式创建屏蔽字。
程序实例:
#include"apue.h"
#include <fcntl.h>
#define RWRWRW (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
int main(void)
{
umask(0);
if (creat("foo",RWRWRW)<0)
err_sys("creat error for foo");
umask(S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH);
if (creat("bar",RWRWRW)<0)
err_sys("creat error for bar");
exit(0);
}
运行结果: