open : 파일열기
#include<fcntl.h>
int open(const char *pathname, int oflag, mode_t mode);
기능 : 존재하는 파일을 열거나 새로운 파일을 만드는 함수.
리턴 : 성공시 fd값, 실패시 -1
pathname : 열고자 하는 파일의 이름
oflag : 플래그
- 단일 지정 : 읽기, 쓰기, 읽기/쓰기
- 중복 지정
O_APPEND(쓰기는 파일 끝 추가),
O_CREAT(없으면 파일 생성) with O_TRUC(무조건 파일 생성), O_EXCL(파일이 있으면 error)
O_NONBLOCK
O_SYNC : 쓰기 연산마다 DISK I/O가 발생하도록 한다.
mode : 접근권한 계산을 위해 사용(umask와 연산)
creat : 파일생성
O_WRONLY|O_CREAT|O_TRUNC 와 같음.
close : 파일 닫기
int close(int filedes);
기능 : 열러진 파일을 닫음.
리턴 : 성공시 0, 실패시 -1
filedes : 닫고자 하는 파일 디스크립터
lseek
off_t lseek(int filedes, off_t offset, int whence);
기능 : 파일의 현재 offset을 임의의 위치로 조정
리턴 : 성공시 이동한 지점 offset, 실패시 -1
offset : 바이트 단위 정수값
whence : offset을 옮기기 위한 기준점.
SEEK_SET(시작), SEEK_CUR(현재), SEEK_END(끝) 위치
read
ssize_t read(int filedes, void *buf, size_t nbytes);
기능 : 파일로부터 데이터를 읽어 들임. (offset증가)
리턴 : 성공시 버퍼로 읽어들인 데이터 바이트 수, 파일의 끝일 때 0, 실패시 -1
buff : 버퍼 공간
nbytes : 읽을 데이터의 최대 바이트 수
예시)
똑같은 파일 2개 open함수 사용시
write
ssize_t write(int filedes, const void *buf, size_t nbytes);
기능 : 파일로부터 데이터를 씀. (offset증가)
리턴 : 성공시 버퍼로 읽어들인 데이터 바이트 수, 실패시 -1
buff : 버퍼 공간
nbytes : 읽을 데이터의 최대 바이트 수
'컴퓨터 공부 > Advanced UNIX System Programming' 카테고리의 다른 글
[4월 28일 3교시] 파일 및 디렉터리 관련 시스템 콜 (0) | 2009.04.28 |
---|---|
[4월 28일 2교시] 접근 권한 (0) | 2009.04.28 |
[4월 28일 1교시] 파일 관련 시스템 콜2 (0) | 2009.04.28 |
[4월 27일 2교시] (0) | 2009.04.27 |
[4월 27일 1교시] (0) | 2009.04.27 |