※open()함수원형
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h> 

일반적인 경우

 int open(const char *pathname, int flags);

파일을 새로 생성시

 int open(const char *pathname, int flags, mode_t mode);


※ open()의 flags 인자와 관련된 권한 옵션들

옵션

내용

O_RDONLY

 읽기 전용으로 파일을 연다.(r)

O_WRONLY

 쓰기 전용으로 파일을 연다.(w)

O_RDWR

 읽고 쓰기 모두 가능(r+, w+)


※ open()의 flags 인자와 관련된 부가적 옵션들

옵션

내용

O_CREAT

 만약 pathname에 해당하는 파일이 없을 경우 파일을 생성. 이경우 3번째 인자를 참조하게 되는데, 세번째 인자에서 지정해 주는 것은 생성할 파일의 권한(permission)이다.

O_EXCL

 O_CREAT와 같이 사용하여 만약 pathname에 해당하는 파일이 존재할 경우 에러를 발생시킨다. 파일을 열지는 않는다.

O_TRUNC

 pathname에 해당하는 파일이 존재하며 쓰기모드(O_WRONLY나 O_RDWR)로 열 경우 파일의 길이를 0으로 만든다. 즉 모든 내용을 지우는 것이다.
 다만 파일이 일반적인 파일일 경우 동작하게 된다.
FIFO나 장치파일일 경우 이 옵션은 무시된다.

O_APPEND

 파일의 쓰기를 할 때 항상 파일의 끝에서 부터 쓰게 한다.(a)
 파일에 저장할 내용을 항상 덧붙여서 쓸때 이 옵션을 설정해 주면 된다.

O_SYNC

 파일에 데이터를 쓸때마다 물리적인 디스크에도 동일하게 적용시킨다.
 이 옵션은 POSIX 표준이 아니므로 지원하지 않는 시스템이 있을것이다.

O_NDELAY

 지연하지 말고 바로 실행시켜라.(FIFO에서 사용)

O_NOCTTY

 이 터미널을 제어터미널로 사용하지 않는다.


※ open()함수에서 mode인자들의 옵션들

옵션

의미

S_IRWXU

파일의 소유주(user)에게 r,w,x 권한 설정

S_IRUSR

파일의 소유주(user)에게 r 권한 설정

S_IWUSR

파일의 소유주(user)에게 w 권한 설정

S_IXUSR

파일의 소유주(user)에게 x 권한 설정

S_IRWXG

파일 그룹(group)에게 r, w, x 권한 설정

S_IRGRP

파일 그룹(group)에게 r 권한 설정

S_IWGRP

파일 그룹(group)에게 w 권한 설정

S_IXGRP

파일 그룹(group)에게 x 권한 설정

S_IRWXO

다른 사용자(other)에게 r, w, x 권한 설정

S_ROTH

다른 사용자(other)에게 r 권한 설정

S_WOTH

다른 사용자(other)에게 w 권한 설정

S_XOTH

다른 사용자(other)에게 x 권한 설정


Posted by 행복한 프로그래머 궁금쟁이박
TAG

댓글을 달아 주세요