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

(2023-09-15)

입출력 시스템 호출, I/O 호출, 파일 처리 수준


1. 파일 입출력 구분

  ㅇ 저수준 파일처리 (Low Level File Handling) : 파일 기술자(File Descriptor)
     - 번호에 의해 파일 입출력을 함
  ㅇ 고수준 파일처리 (High Level File Handling) : 파일 포인터(File Pointer)
     - FILE 구조체에 의해 파일 입출력을 함


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

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

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


3. 고수준 파일처리 (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(), fprintf() 등 ☞ 고수준 파일 입출력 참조 4. Unix/Linux 파일 I/O (입출력) ㅇ 열려있는 화일파일기술자/파일포인터를 통한 참조로 입출력 수행 ㅇ I/O 시스템 호출에서는, - 파이프,FIFO,소켓,터미널,장치 등 모든 열려있는 장치 파일을 참조할 때 파일기술자를 씀 ㅇ 파일 I/O를 위한 버퍼 캐시 사용 - 서로다른 속도의 디스크 저장장치,메모리 등에 읽기쓰기를 곧바로 수행하지 않고, 반드시 버퍼를 통해서 만 접근함 ※ Unix/Linux에서 거의 모든 것이 화일로 처리됨 ☞ Unix/Linux 파일 처리 참조 - 즉, `디스크 화일,직렬 포트,프린터 등`과 `화일`을 사용할 때 똑같은 방법 사용 - 결국, 디바이스,디렉토리,네임드파이프,소켓 등에서 입출력이 파일로 취급됨

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


"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"