두근두근이야기

[파일i/o] open 함수 본문

IT/IT ::Linux

[파일i/o] open 함수

골든 2013. 3. 13. 00:04

open 함수 //파일을 열거나 생성할 때 사용.

 #include<fcntl.h>

int open(const char *pathname, int oflag, .../*mode_t mode */);

반환값: 성공 시 파일 디스크립터, 오류시 -1


-oflag 인수는 함수의 작동 방식을 결정하는 다양한 옵션을 받음

-이 인수는  <fcntl.h>에 정의된 상수들 중 하나 또는 여러 개를 or 연산으로 결합한 값이 들어감

-반드시 들어가야 하는 인수

ㅇ O_RDONLY: 읽기 전용으로 열기

ㅇ O_WRONLY: 쓰기 전용으로 열기

ㅇ O_RDWR: 읽기 및 쓰기용으로 열기

-선택적으로 들어갈 수 있는 상수

ㅇ O_APPEND: 파일 기록 시 내용을 파일의 끝에 추가

ㅇ O_CREAT: 파일이 존재하지 않으면 파일이 생성 (이 옵션을 지정한 경우 세 번째 인수인 mode도 지정해야함)

ㅇ O_EXCL: 파일이 이미 존재하는지 검사하고 파일이 존재하지 않을 경우 파일을 생성, 이 과정을 원자적으로 실행함 (파일이 이미 존재할 때, O_CREAT 상수와 함께 설정될 경우 오류가 발생함.

ㅇ O_TRUNC: 이미 존재하는 파일을 읽기 또는 쓰기 모드로 열었을 때 파일의 크기를 0으로 만듦

ㅇ O_NOCTTY: pathname이 터미널 장치를 가리키는 경우, 해당 장치를 이 프로세스의 제어 터미널로 배정하지 않음

ㅇ O_NONBLOCK: pathname이 FIFO나 블록 특수파일, 문자 특수 파일을 지칭하는 경우, 이후의 I/O 작업들에 대해 Nonblock 모드로 동작함