C & LINUX

C / LINUX umask()

Ocean_ 2022. 5. 2. 14:51

함수 기능

파일 또는 디렉토리가 생성될 때에 불필요하게 많은 권한을 갖지 않도록 통제하는 함수

함수 원형

#include<sys/types.h>
#include<sys/stat.h>
Mode_t umask(mode_t cmask)

리턴 값 : 이전의 파일 모드 생성 마스크

함수 파라메터

cmask

원하는 mask 값

함수 예제

#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#include<sys/stat.h>

#define RW_MODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)

int main(void){
    char *fname1="ssu_file1";
    char *fname2="ssu_file2";

    umask(0);

    if(creat(fname1,RW_MODE)<0){
        fprintf(stderr,"creat error for%s\n",fname1);
        exit(1);
    }

    umask(S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH);

     if(creat(fname2,RW_MODE)<0){
        fprintf(stderr,"creat error for%s\n",fname2);
        exit(1);
    }

    exit(0);
}

 

 

 

리눅스시스템 프로그래밍 - 홍지만 저

교재 내에 있는 예제를 바탕으로 작성한 글 입니다.