umask函数使用示例

时间 : 15-08-31 栏目 : linux编程 作者 : 老薛 评论 : 0 点击 : 1,977 次

一、源码

#include <stdio.h>

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h> /*for close()*/
int main(void){
        int fd1,fd2;
        
        fd1=open("test",O_CREAT | O_RDWR,0777);    
     
    if(fd1<0){
        perror("Cannot create the test file");
        return 1;
    }
    
     close(fd1);

        struct stat file_stat;
    
    if(stat("test",&file_stat)==-1){
        perror("Cannot get the information of the file!\n");
        return 1;
    }

    printf("Premission is : %o\n",file_stat.st_mode & 0x1ff);

    umask(S_IWGRP | S_IRGRP | S_IXGRP | S_IROTH | S_IWOTH | S_IXOTH);
    
     fd2=open("test1",O_CREAT | O_RDWR,0777);

    if(fd2<0){
         perror("Cannot create the test file");
          return 1;
    }
    
    close(fd2);

     if(stat("test1",&file_stat)==-1){
         perror("Cannot get the information of the file!\n");
         return 1;
     }       

     printf("After Modify umask value, Premission is : %o\n",file_stat.st_mode & 0x1ff);

    return 0;

}

二、编译

[root@gateway c_study]# gcc p4.8.c -o p4.8

三、运行

[root@gateway c_study]# ./p4.8
Premission is : 755
After Modify umask value, Premission is : 700

本文标签

除非注明,文章均为( 老薛 )原创,转载请保留链接: http://www.bdkyr.com/xtyw003/930.html

随便看看

0