리눅스에선 파일마다 번호가 부여파일이 열릴때마다
 파일 식별자(file descriptor)프로세스에 종속적이고 실행중인프로그램안에서만 유효하다.
 프로그램이 하나 실행되면 기본적으로 세개의 파일 식별자가 자동적으로 지정 키보드를 사용하는 표준 입력, 모니터에 나타나는 표준 출력, 모니터에 나타나는 표준 오류로 0, 1, 2가 각각 배정
그후에 파일들이 3,4,5... 이런순으로 배정된다.

fd = open("jkim", O_RDONLY | O_CREAT, 0644) 644는 권한을 주어서 여는것이다.


파일 닫기
실행 중인 한 프로그램이 동시에 열 수 있는 파일의 수에는 제한이 있다.
int close(int fd); fd에는 디스크립터 넘버를 넣으면된다.

파일로부터 읽기
read 함수
기능
       파일로부터 데이터를 읽는다.
기본형
       ssize_t read(int fd, void *buf, size_t nbytes);  //ssize_t는 인트정도로 보면된다.
 fd에다가 0번을 집어 넣으면 읽어오게된다. 표준입력을 통해서
       fd : 읽을 파일의 파일 식별자
       buf : 읽어 온 데이터를 저장하는 변수
       nbytes : 읽어 올 데이터의 바이트 수
반환값
       성공 : 읽은 바이트 수
       실패 : -1
헤더 파일
       <unistd.h>

파일로부터 쓰기
write 함수
기능
       파일에 데이터를 쓴다.
기본형
       ssize_t write(int fd, const void *buf, size_t nbytes); //ssize_t는 인트정도로 보면된다.
 표준출력이 1번이기 때문에 fd에다가 표준출력인 1번을 넣어주면 화면에 데이터가 출력된다.
       fd : 쓸 파일의 파일 식별자
       buf : 데이터를 저장하고 있는 변수
       nbytes : 쓸 데이터의 바이트 수
반환값
       성공 : 파일에 쓴 데이터의 바이트 수
       실패 : -1
헤더 파일
       <unistd.h>

      c 언어  |  2007. 9. 13. 10:01



sokoban's Blog is powered by Daum & Tattertools