1. 파일 입출력
1.1. open 플래그
- flag 인자는 O_RDONLY, O_WRONLY, O_RDWR 중 하나를 포함해야 함.
- O_APPEND : 덧붙이기 모드로 파일을 연다.
- O_ASYNC : 특정 파일에서 읽기나 쓰기가 가능해질 때 시그널이 발생한다.
- O_CLOEXEC : 열린 파일에 close-on-exec 플래그를 설정한다. 새 프로세스를 실행하면 이 파일은 자동으로 닫힌다.
- O_CREAT : name에 적은 파일이 없으면 파일을 새로 만든다.
- O_DIRECT : 직접 입출력을 수행하기 위해 파일을 연다.
- O_DIRECTORY : name이 디렉토리가 아니면 open()호출이 실패한다.
- O_EXCL : 파일 생성 과정에서 경쟁 상태를 회피하기 위해 사용된다.
- O_LARGEFILE : 2GB를 초과하는 파일을 열기 위해 64bit offset을 사용한다.
- O_NOATIME+ : 읽기에 의해 파일의 마지막 접근 시간이 갱신되지 않도록 한다.
- O_NOCTTY : name이 터미널 디바이스를 가리키면 프로세스에 현재 제어 중인 터미널이 없더라도 프로세스의 제어 터미널이 되지 않는다.
- O_NOFOLLW : name이 심볼릭 링크라면 open()호출이 실패한다.
- O_NONBLOCK : 가능한 경우 파일을 non-blocking 모드로 연다.
- O_SYNC : 파일을 동기식 입출력용으로 연다. 데이터를 물리적으로 디스크에 쓰기 전까지 쓰기 연산이 완료되지 않는다.
- O_TRUNC : 파일이 존재하고, 일반 파일이며 flags 인자에 쓰기가 가능하도록 명시되어 있으면 파일 길이를 0으로 잘라버린다.
1.2. lseek 플래그
- SEEK_SET : 파일의 시작을 기준으로 계산