File I/O   파일 I/O, 화일 I/O, 파일 입출력, 화일 입출력

(2018-06-18)

입출력 시스템 호출

1. 파일 입출력 구분

  ㅇ 저수준 파일처리(Low Level File Handling) : 파일 기술자(File Descriptor)
     - 음이 아닌 정수로된 번호에 의해 파일 입출력을 함 (유닉스운영체제 지원)
        . 다소 비 직관적인 함수 형태를 사용

     - 이를, 때로는 버퍼링 없는 파일 입출력(Unbuffered File I/O) 이라고도 함
        . 프로그래머가 버퍼 크기를 일일이 지정해주어야 함

     - 例) open(), write() 등                ☞ 저수준 파일 입출력 참조
        . 파일 사용 준비 및 파일기술자 만들기 함수

  ㅇ 고수준 파일처리(High Level File Handling) : 파일 포인터(File Pointer)
     - FILE 구조체에 의해 파일 입출력을 함 (표준 C 언어를 지원하는 모든 운영체제 지원)
        . C 언어 표준인 추상화된 FILE 구조체 사용
           .. 표준 입출력 라이브러리(Standard I/O Library)로써,
           .. 파일파일 스트림을 연관시키는 C 언어 라이브러리 (stdio.h)에 선언되어있음
              
#include <stdio.h>

FILE * fopen (const char *path, const char *mode);
. 직관적이고 사용이 편리한 함수 형태를 제공 - 이를, 때로는 버퍼링 있는 파일 입출력(Buffered File I/O) 이라고도 함 . 프로그래머가 버퍼 크기를 일일이 지정해주지 않아도 되며, . 줄 단위 처리 등이 용이 - 例) fopen(), fclose() 등 ☞ 고수준 파일 입출력 참조 2. UNIX 파일 I/O (입출력)UNIX에서 거의 모든 것이 화일로 처리됨 - 즉, 디스크 화일,직렬 포트,프린터 등과 화일을 사용할 때 똑같은 방법 사용 ㅇ 열려있는 화일을 통한 입출력 - UNIX에서는, 파일 입출력을 파일기술자/파일포인터를 통해 열려있는 파일을 참조함 - UNIX 내부적으로, I/O 시스템 호출에서는, . 파이프,FIFO,소켓,터미널,장치 파일,일반 파일 등의 모든 열려있는 파일을 참조 할 때 파일기술자를 씀 ㅇ 파일 I/O를 위한 버퍼 캐시 - 서로다른 속도디스크 저장장치,메모리 등에서의 읽기쓰기를 곧바로 해당 장치에다가 즉시 수행하지 않고, 반드시 버퍼를 통해서 만 접근함


[파일] 1. 파일 2. 파일 I/O 3. 저수준 파일 I/O 4. 화일 기술자 5. 화일 포인터 6. 화일 끝(EOF)

 
        최근수정     요약목록(시험중)     참고문헌