C언어 - 시스템 레벨 입출력

 

시스템레벨 입출력은 저수준 입출력이라고도 하며, 표준입출력 함수에 비해 프로그램 코드가 짧으며 실행속도가 빠르다.

 

open(), close() 함수의 원형은 다음과 같다

 

int open ( char *filename, int oflag, int pmode);

int close(int fd);

 

# oflag

open()함수의 두 번째 인수인 oflag는 파일의 접근 목적이나 접근방법 등을 명시하는 것으로 <fcntl.h>파일에 정의 되어 있다.

 

(oflag)

oflag 의미
O_APPEND

0x0001

쓰기용으로 파일을 열어, 파일의 끝을 현재위치로 설정한다.
O_CREATE 0x0002

쓰기용으로 파일을 생성한다. 파일이 이미 존재하면 효과가 없다.

O_EXCEL 0x0004 O_CREATE와 함께 사용되어 파일이 이미 존재할 경우 오류값을 반환
O_RDONLY 0x0100 읽기 전용으로 파일을 연다.
O_RDWR 0x0200 읽고 쓰기용으로 파일을 연다
O_TRUNC 0x0400 파일을 열고 내용을 삭제하여 파일의 길이를 0으로 만든다.
O_WRONLY 0x0800 쓰기 전용으로 파일을 연다.
O_BINARY 0x4000 이진 모드로 파일을 연다.
O_TEXT 0x8000 텍스트 모드로 파일을 연다.

 

oflag의 값들은 상호 배타적이기 때문에 경우에 따라서는 여러 개의 값을 주어야 하는데 이 경우에는 OR 연산자( | )를 사용한다.

 

ex) O_RDONLY | O_BINARY

예외로 읽기 전용과 쓰기전용을 동시에 표시할 수 없다.