강좌 & 팁
글 수 2,412
2014.05.16 16:48:17 (*.134.169.166)
49833
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
예외로 읽기 전용과 쓰기전용을 동시에 표시할 수 없다.