리눅스 open - 리눅스 시스템 프로그래밍 open은 이미 존재하는 파일을 읽기 또는 쓰기용으로 열거나 새로운 파일을 생성하여 연다. #include <fcntl.h> 헤더 파일을 사용 int open(const char* pathname, int flags, [mode_t mode]); > pathname: 파일의 경로명 > flags : 오픈하는 방식을 지정 O_RDONLY : 읽기만 가능 O_WRONLY : 쓰기만 가능 O_RDWR : 읽기, 쓰기 모두 가능 O_CREAT : 경로의 파일이 존재하면 오픈, 없으면 새로 생성 후 오픈 -> 모드 지정 * 모드를 지정해야 파일에 대한 초기 권한이 지정, 모드 생략시 랜덤 지정 O_APPEND : 오픈하고 포인터의 위치가 0이나, 파일 쓰기를 시작하면 내용의 마지막 뒤로 이동 O_TRUNC : 오픈하고 포인터의 위치를 첫 부분(0)으로 이동한다. > mode : 8진수로 이루어진 접근 권한 또는 10진수 > return값 : 성공적으로 수행하면 음이 아닌 정수형의 값이 반환되며, 이 값이 file descriptor가 된다. open을 이용하여 한 파일을 읽고, 다른 파일로 복사하는 과정 #include <unistd.h> #include <stdio.h> #include <fcntl.h> int main() { int fdin, fdout; ssize_t nread; char buffer[1024] = {0}; fdin = open("temp1.txt", O_RDONLY); fdout = open("temp2.txt", O_WRONLY | O_CREAT | O_TRUNC, 0644); while((nread = read(fdin,buffer,1024))>0) { if(write(fdout,buffer,nread) < nread) { close(fdin); close(fdout); } } close(fdin); close(fdout); }
'Linux' 카테고리의 다른 글
리눅스 creat - 리눅스 시스템 프로그래밍 (0) | 2016.02.29 |
---|---|
리눅스 close - 리눅스 시스템 프로그래밍 (1) | 2016.02.25 |
Virtual Box 설치 및 Linux Ubuntu 설치 (0) | 2016.02.23 |
ch02 시스템 구조 (0) | 2016.02.04 |
메모리 관리 (0) | 2015.12.19 |