File Pointer   파일 포인터, 화일 포인터

(2024-05-13)

표준 파일 , 고수준 파일 입출력, fopen(), FILE, 파일 구조체, 파일 모드


1. [C 언어]  고수준 파일 입출력

  ㅇ 고수준 파일 처리 (High Level File Handling) 
     - 표준 C 언어를 지원하는 모든 운영체제가 이를 지원

  ㅇ 특징
     - 파일 포인터 (File Pointer)에 의함
        . FILE 구조체에 의해 파일 입출력을 함 

     - C 언어 표준인, 추상화된 FILE 구조체 사용
        . 표준 입출력 라이브러리(Standard I/O Library)로써,
        . 파일파일 스트림을 연관시킴
        . C 언어 라이브러리 (stdio.h)에 선언되어있음

     - 직관적이고 사용이 편리한 다양한 함수 형태를 제공                ☞ C 파일 처리 함수 참조
        . 例) fopen(),fclose(),fprintf(),fscanf(),fputs(),fgets(),fread() 등 

     - 버퍼 사용
        . 이를, 버퍼링 있는 파일 입출력 (Buffered File I/O) 이라고도 함
        . 프로그래머가 버퍼 크기를 일일이 지정해주지 않아도 되며,
        . 줄 단위 처리 등이 용이


2. [C 언어]  파일 포인터 (파일 스트림, 스트림 포인터)파일에 대한 추상화정보를 가리키는 포인터
     - 파일을, 하드디스크에서 메모리로 읽어들일, `위치 주소`,`크기`,`버퍼링` 등에 대한,
     - 추상화정보를 가지고 있는 포인터를 말함

  ㅇ (유사 명칭)
     - 한편, `파일 포인터`는,
     - 파일 스트림을 가리키는 포인터이므로, 
        . (스트림 : 데이터,패킷,비트 등의 일련의 연속성을 갖는 흐름)
     - 그냥 `파일 스트림` 또는 `스트림 포인터` 라고도 함


3. [C 언어]  파일 포인터의 규칙

  ㅇ `파일 구조체`  :  FILE
     -  FILE 이라는 이름의, 파일 구조체에 대한 자료형
        . (구조체 : 1 이상의 다른 데이터형을 갖는 변수들을 모아둔 집합체)
     -  stdio.h 헤더파일에 정의됨
     -  파일 포인터의 `자료형` 키워드

  ㅇ `파일 포인터`  :  FILE *  
     -  파일 스트림을 다루기 위한, 일종의 버퍼를 가리키는, 포인터

  ㅇ 파일 포인터의 `선언 방법`
     -  FILE *파일포인터변수명

     * 例)  FILE *fp = fopen(파일 이름, 파일 모드);

  ㅇ 파일 포인터의 `변수 명` 규칙
     -  통상적인 변수명 작성규칙에 따라 만듬

  ㅇ 파일 포인터의 `사용 방법`
     -  표준 파일 입출력 함수(fopen(),fclose())의 인수에, FILE 포인터를 넘겨주면 됨


4. [C 언어]  3개의 `표준 파일` 및 `표준 파일 포인터`C 언어는, 사용자를 위해 다음 3개 파일을 자동으로 항상 열어둠
     - 표준 입력 (stdin)  =>  키보드
        . getchar(),gets(),scanf() 등이 데이터를 읽게되는 파일
     - 표준 출력 (stdout)  =>  디스플레이
        . putchar(),puts(),printf() 등이 데이터를 쓰게되는 파일 
     - 표준 에러 출력 (stderr)  =>  디스플레이
        . 에러 발생시 출력되는 파일


5. [C 언어]  fopen(), fclose() 등의 사용 例

    
#include <stdio.h>

FILE * fopen (const char *path, const char *mode); // 파일 열기
int fclose (FILE *stream); // 스트림 닫기
int fgetc (FILE *stream); // 한 번에 한 문자씩 읽기
char * fgets (char *str, int size, FILE *stream); // 한 줄씩 읽기
ㅇ fopen() : 파일 스트림을 생성하고, 지정된 파일을 오픈하는 함수 - 첫째 매개변수 : 열려고 하는 파일의 경로 및 이름 . 즉, 그 파일명이 있는 문자열주소 - 둘째 매개변수 : 파일 모드 (r,w,a,r+,w+,a+ 등) - 반환 : 파일 포인터(파일 구조체) - 실패시 : NULL 반환 ㅇ fclose() : 파일 스트림을 닫고, 지정된 파일도 닫는 함수 - 실패시 : EOF 반환 ※ 만일, 특정 파일에 문자열을 쓸 때에는, - 먼저, 파일 사용을 위해, fopen()으로 파일을 열어서, 파일 포인터를 얻고, - 후에, fprintf()를 써서, 그 파일에 서식을 지정하여 문자열을 쓰고, - 끝에, fclose()로 파일을 닫음 6. [C 언어] 파일 모드 (파일 오픈 모드) ㅇ 파일 접근 모드 : r, w, a, r+, w+, a+ - r (읽기 전용, 반드시 파일 있어야 함) - w (쓰기 전용, 파일 없으면 생성, 파일 있으면 덮어쓰기) - a (맨뒤 쓰기, 파일 없으면 생성) - r+ (읽기/쓰기 모두 가능, 반드시 파일 있어야 하고, 없으면 NULL 반환) - w+ (읽기/쓰기 모두 가능, 파일 없으면 생성, 파일 있으면 덮어쓰기) - a+ (읽기/맨뒤 쓰기 모두 가능, 파일 없으면 생성) ㅇ 파일 입출력 모드 : b, t - b (바이너리) - t (텍스트, 개행문자파일끝 처리함)

[배열,포인터]1. C 배열   2. 포인터   3. 함수 포인터   4. 파일 포인터   5. 배열 포인터  

[C 함수]1. C 함수   2. C 함수 종류   3. C 문자열 함수   4. C 동적 메모리 관리 함수   5. C 파일 처리 함수   6. C 파일 포인터  

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

  1. Top (분류 펼침)      :     1,594개 분류    6,533건 해설

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 (차재복)