Linux
open 함수
정든친구
2019. 8. 20. 14:42
#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);
에러 발생시 -1을 리턴.
에러 발생시 errno를 통해 알 수 있다.
*** flags
O_RDONLY | 읽기 전용 |
O_WRONLY | 쓰기 전용 |
O_RDWR | 읽기 쓰기 |
*** flags 부가 옵션
O_CREAT | pathname에 해당하는 파일이 없는 경우 파일을 생성. 파일 생성의 경우 세번째 인자(mode) 인자를 참조하여 파일의 권한을 설정한다. |
O_EXCL | O_CREAT와 함께 사용. 만일 파일이 존재하면 에러가 발생되며 파일을 열지 않음 |
O_TRUNC | pathname의 파일이 존재하며 쓰기모드(O_RWONLY나 O_RDWR)인 경우 파일의 내용을 모두 지운 상태로 연다. 단, FIFO나 장치 파일의 경우 이 옵션은 무시 됨. |
O_APPEND | 기존 파일의 내용에 닷붙여 쓰기를 한다 |
O_SYNC | POSIX 표준이 아니므로 지원하지 않을 수 있음. 파일에 데이터를 쓸 때 물리적인 디스크에도 동일하게 적용 |
*** mode
S_IRWXU | 파일 소유주에게 읽기, 쓰기, 실행 권한 설정 |
S_IRUSR | 파일 소유주에게 읽기 권한 설정 |
S_IWUSR | 파일 소유주에게 쓰기 권한 설정 |
S_IXUSR | 파일 소유주에게 실행 권한 설정 |
S_IRWXG | 파일 그룹에게 읽기, 쓰기, 실행 권한 설정 |
S_IRGRP | 파일 그룹에게 읽기 권한 설정 |
S_IWGRP | 파일 그룹에게 쓰기 권한 설정 |
S_IXGRP | 파일 그룹에게 실행 권한 설정 |
S_IRWXO | 다른 사용자에게 읽기, 쓰기, 실행 권한 설정 |
S_ROTH | 다른 사용자에게 읽기 권한 설정 |
S_WOTH | 다른 사용자에게 쓰기 권한 설정 |
S_XOTH | 다른 사용자에게 실행 권한 설정 |