WIPIVERSE

C 파일 입출력

개념
C 파일 입출력(File I/O)은 C 프로그래밍 언어에서 파일을 읽고 쓰는 기능을 제공하는 표준 입출력 라이브러리 인터페이스를 의미한다. ISO/IEC 9899 표준(일명 C 표준)에서 정의된 <stdio.h> 헤더와 관련 함수들을 이용한다.

주요 요소

요소 설명
FILE 객체 파일 스트림을 표현하는 불투명 타입. fopen 등으로 얻은 후 fclose 로 해제한다.
파일 열기/닫기 FILE *fopen(const char *pathname, const char *mode);
int fclose(FILE *stream);
입출력 모드 r(읽기), w(쓰기), a(추가)와 이들의 바이너리 버전(rb, wb, ab) 등.
텍스트 입출력 fprintf, fscanf, fgets, fputs 등 포맷 기반 함수.
바이너리 입출력 fread, fwrite 등 블록 단위 읽기·쓰기 함수.
버퍼링 표준 입출력은 기본적으로 전용 버퍼를 사용해 시스템 호출 수를 최소화한다. setvbuf 로 버퍼 모드(전용, 라인, 무버퍼)를 제어 가능.
오류·끝 검사 feof, ferror, clearerr 로 파일 상태를 확인하고 처리한다.
파일 위치 제어 fseek, ftell, rewind 로 스트림 내 위치를 이동하거나 현재 오프셋을 얻는다.
표준 스트림 stdin, stdout, stderr는 각각 표준 입력·출력·오류 스트림을 나타내는 전역 FILE* 객체다.

역사 및 표준화
초기 C 언어(1970년대 초)에서는 파일 입출력에 대한 정의가 없었으며, 1978년 발표된 ANSI C(후에 ISO/IEC 9899) 표준에서 <stdio.h>와 함께 체계화되었다. 이후 C89/90, C99, C11, C17 등 모든 주요 C 표준에서 동일한 인터페이스를 유지하고 있다.

사용 예시

#include <stdio.h>

int main(void) {
    FILE *fp = fopen("data.txt", "w");
    if (fp == NULL) return 1;          // 파일 열기 실패

    fprintf(fp, "Hello, World!
");    // 텍스트 쓰기
    fclose(fp);
    return 0;
}

관련 표준

  • ISO/IEC 9899:1990 – C89/90 (첫 번째 표준)
  • ISO/IEC 9899:1999 – C99 (추가 함수 snprintf 등)
  • ISO/IEC 9899:2011 – C11
  • ISO/IEC 9899:2018 – C17

참고

  • C 표준 라이브러리 매뉴얼 및 구현체(예: GNU glibc, Microsoft CRT)에서 상세 동작을 확인할 수 있다.
  • 파일 입출력은 운영체제와 파일 시스템의 특성에 따라 텍스트와 바이너리 모드 동작이 다를 수 있다.

이 항목은 C 프로그래밍 언어에서 정의된 표준 파일 입출력 기능에 대한 객관적 요약이다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기