#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/types.h>
/*
* Linux下设置新建文件时的默认权限掩码
* 由umask函数设置
* sys/types.h,sys/stat.h
* mode_t umask(mode_t umask)
* 传入四位八进制数,返回系统原先的权限掩码
* 0666对应Linux文件权限中的0000
* 0444对应0222
*
*/
int main(void)
{
mode_t new_umask, old_umask;
new_umask=0666;
old_umask=umask(new_umask);
printf("系统原来的权限掩码是:%o/n",old_umask);
printf("系统新的权限掩码是:%o/n",new_umask);
system("touch liu1");
printf("创建了文件liu1/n");
new_umask=0444;
old_umask=umask(new_umask);
printf("系统原来的权限掩码是:%o/n",old_umask);
printf("系统新的权限掩码是:%o/n",new_umask);
system("touch liu2");
printf("创建了文件liu2/n");
system("ls liu1 liu2 -l");
return 0;
/*执行结果
* 系统原来的权限掩码是:22
* 系统新的权限掩码是:666
* 创建了文件liu1
* 系统原来的权限掩码是:666
* 系统新的权限掩码是:444
* 创建了文件liu2
* ---------- 1 jinyong jinyong 0 2010-12-28 21:57 liu1
* --w--w--w- 1 jinyong jinyong 0 2010-12-28 21:57 liu2
*/
}
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/types.h>
/*
* Linux下设置新建文件时的默认权限掩码
* 由umask函数设置
* sys/types.h,sys/stat.h
* mode_t umask(mode_t umask)
* 传入四位八进制数,返回系统原先的权限掩码
* 0666对应Linux文件权限中的0000
* 0444对应0222
*
*/
int main(void)
{
mode_t new_umask, old_umask;
new_umask=0666;
old_umask=umask(new_umask);
printf("系统原来的权限掩码是:%o/n",old_umask);
printf("系统新的权限掩码是:%o/n",new_umask);
system("touch liu1");
printf("创建了文件liu1/n");
new_umask=0444;
old_umask=umask(new_umask);
printf("系统原来的权限掩码是:%o/n",old_umask);
printf("系统新的权限掩码是:%o/n",new_umask);
system("touch liu2");
printf("创建了文件liu2/n");
system("ls liu1 liu2 -l");
return 0;
/*执行结果
* 系统原来的权限掩码是:22
* 系统新的权限掩码是:666
* 创建了文件liu1
* 系统原来的权限掩码是:666
* 系统新的权限掩码是:444
* 创建了文件liu2
* ---------- 1 jinyong jinyong 0 2010-12-28 21:57 liu1
* --w--w--w- 1 jinyong jinyong 0 2010-12-28 21:57 liu2
*/
}