반응형

분류 전체보기 2946

자연이 준 선물,제주 산방산, 용머리해안, 송악산, 형제섬

자연이 준 선물, 산방산, 용머리해안, 송악산, 형제섬 제주도 남단에 위치한 대정에는 산방산과 용머리해안, 송악산, 형제섬으로 유명합니다.대규모 자본에 의해 높은 입장료를 받는 곳들보다 자연이 준 풍경을 보는 것이 제주 여행의 으뜸이라 생각합니다.제주를 방문했다면 대정에 방문할 것을 추천합니다. 2014년 9월 9일

여행/국내여행 2016.04.05

[리눅스/유닉스 시스템 프로그래밍] dup, dup2

3.6 dup, dup2 리눅스 시스템에서는 열려진 파일의 디스크립터를 복제하는 dup와 dup2 함수를 제공합니다. // ex_dup.c #include "eh.h" int main(int argc,char **argv) { int fd1 = 0, fd2=0; char buf[10+1]=""; if(argc != 2) { fprintf(stderr,"usage: %s [file name]\n",argv[0]); return 1; } fd1= open(argv[1],O_RDONLY); if(fd1 == -1) { fprintf(stderr,"failed open %s\n",argv[1]); return 1; } fd2= dup(fd1); if(fd2 == -1) { perror("failed dup");..

[리눅스/유닉스 시스템 프로그래밍] 파일 테이블과 파일 디스크립터 테이블

3.5 파일 테이블과 파일 디스크립터 테이블 리눅스 시스템에서는 프로세스마다 파일 디스크립터 테이블을 갖고 있습니다. 그리고 파일 디스크립터 테이블에는 open에서 사용한 flags와 파일 테이블 요소의 위치 정보를 포함합니다. 그리고 커널은 모든 열려진 파일들을 관리하는 파일 테이블을 가지고 있습니다. 파일 테이블의 항목 엔트리에는 파일의 상태 flags와 현재 파일의 작업 offset과 파일의 vnode 테이블의 위치 정보를 포함합니다. 그리고 vnode 테이블의 각 항목은 inode 정보와 현재 파일의 크기를 포함합니다. 먼저 하나의 프로세스에서 같은 파일을 두 번 열었을 때를 살펴봅시다. 같은 파일을 두 번 열면 서로 다른 파일 디스크립터를 부여하고 서로 다른 파일 오프셋을 유지합니다. 따라서 프..

[리눅스/유닉스 시스템 프로그래밍] lseek

3.4 lseek 파일 입출력 작업을 할 때 lseek 함수를 이용하여 원하는 위치로 이동할 수 있습니다. 현재 작업하고 있는 파일의 시작 위치에서 상대적 거리를 파일 offset이라 부르며 lseek 함수를 이용하면 파일의 시작 위치나 현재 위치, 파일의 끝에서 상대적 거리로 이동할 수 있습니다. 하지만 FIFO나 pipe처럼 특수한 파일은 lseek를 허용하지 않습니다. //ex_ enable_lseek.c #include #include #include #include int main(int argc,char **argv) { int fd = 0; if(argc != 2) { fprintf(stderr,"usage: %s [filename]\n",argv[0]); return 1; } fd = op..

[리눅스/유닉스 시스템 프로그래밍] read, write

3.3 read, write 파일을 열고 난 후에 데이터를 쓰거나 읽어올 때는 read와 write 함수를 사용합니다. // ex_read_write.c #include #include #include #include #define MAX_TIT_LEN 100 #define MAX_AUT_LEN 20 #define DUMMY_FNAME "dummy" typedef struct _Book Book; struct _Book { char title[MAX_TIT_LEN+1]; char author[MAX_AUT_LEN+1]; int num; }; void TestWrite(); void TestRead(); int main() { TestWrite(); TestRead(); return 0; } void Te..

[리눅스/유닉스 시스템 프로그래밍] open, close

3.2 open, close 파일 입출력 작업을 위해 파일을 열 때 open 함수를 이용하고 작업을 마치고 파일을 닫을 때 close 함수를 이용합니다. //ex_open1.c #include #include #include #include #include int main(int argc,char **argv) { int fd = 0; if(argc != 2) { printf("Usage %s [filename]\n",argv[0]); exit(0); } fd = open(argv[1],O_WRONLY); if(fd

반응형