학습목표
1. 파일 입출력 개념을 이해할 수 있다.
2. 파일을 만들고 읽고 추가할 수 있다.
3. 순차 파일을 만들고 읽을 수 있다.
4. 랜덤 파일을 만들고 읽을 수 있다.
주용용어
파일 입출력, 랜덤파일, 순차파일, 파일포인터, 스트림, stream, 텍스트파일, 이진파일
8.1 파일 입출력의 개념
> 파일 입,출력 이란?
- 보조기억장치의 파일을 이용한 자료의 입,출력
-> 파일처리 함수를 이용
> 파일처리함수
- 보조기억장치(디스크)에 들어있는 정보들의 모임을 파일이라고 하고, 이러한 파일을 제어하는 함수
> 파일
- 보조기억장치에 저장된 데이터들의 모임
- 일련의 바이트(byte)들로 구성
- C 프로그램은 운영체제를 통해서 파일을 읽거나 쓰게 된다.
> 파일의 구분
- 텍스트 파일(text file)
* 화명에 출력되는 문자들로 구성된 파일
- 2진 파일 (binary file)
* 텍스트 파일을 포함한 모든 종류의 자료를 다루는 파일
* 컴파일 되어 있어 기계어에 가까우므로 내용을 이해하거나 인쇄가 불가능
> 파일에 대한 자료의 입력과 출력
- 파일 입력
* 디스크 상의 특정 위치(파일)에 수록되어 있는 자료를 읽어 들여 기억공간에 수록하는 절차
- 파일 출력
* 기억공간에 있는 자료를 디스크 상의 특정 위치(파일)에 수록하는 절차
> 파일처리를 위해서는 파일포인터를 사용
- 파일포인터
* 파일이 어디에 있는지를 가리키는 포인터
* 모든 파일 입출력 함수는 파일 포인터를 사용
> 파일을 입출력 할 때 버퍼(buffer) 사용
- 버퍼
* 기억 공간과 디스크 사이에 존재하는 임시 기억 공간
* 파일 입출력 시 디스크에 자료를 기억 공간으로 읽어 들이거나,
기억 공간에서 처리된 자료를 디스크에 저장할 때 사용
8.2 파일 포인터를 이용한 파일 입출력
> 자료의 입, 출력 개념
- 프로그램과 입,출력 장치(콘솔, 파일, 소켓 등)와의
사이에 이루어지는 자료의 입력과 출력
- 자료의 입,출력을 위한 논리적인 통로가 필요 : 스트림
> 자료의 입, 출력을 위해서는 스트림이 필요
- 표준 입출력장치를 이용한 자료 입출력
: 표준 입출력장치와의 스트림은 프로그램 실행 시 자동으로 생성되고, 프로그램 종료 시 자동으로 소멸
- 파일을 이용한 자료 입출력
: 파일 입출력을 위한 스트림은 프로그램을 통해 생성과 소멸을 시켜주어야 한다.
8.2.1 파일 입출력의 수행 과정
1) 파일은 연다. --------- > 파일과 자료를 주고 받을 수 있는 스트림을 생성 (fopen()함수 사용 )
2) 입출력을 수행한다.
3) 파일을 닫는다. --------- > 생성된 스트림을 소멸시키기 위한 과정 (fclose() 함수 사용)
> 스트림 (stream) 의 생성
- 파일과 프로그램과의 통로(논리적인 접속)를 구성
- 통로 역할을 파일 포인터가 수행
> 파일 입,출력 프로그램 구조
// 파일 입출력 프로그램의 구조 예
#include <stdio.h>
void main(){
char ch;
FILE *fp; --- 파일포인터 선언
fp = fopen("8-1.txt","w"); --- 파일 open
for(ch = 'A'; ch <='Z'; ch++)
fputc(ch, fp);
fclose(fp); } --- 파일 close
// 파일 처리 함수와 기능
함수 | 기능 |
fopen("파일명","모드") | 파일을 지정된 모드로 열기 |
fclose() | 파일을 닫기 |
fgetc(), getc() | 파일로부터 한 문자 읽기 |
fputc(), putc() | 파일에 한 문자 쓰기 |
fgets() | 파일로부터 문자열 읽기 |
fputs() | 파일에 문자열 쓰기 |
fscanf() | 파일로부터 정해진 형식에 따라 읽기 |
fprintf() | 파일에 정해진 형식에 따라 쓰기 |
fread() | 파일로부터 정해진 크기의 자료를 정해진 개수만큼 읽기 |
fwrite() | 파일에 정해진 크기의 자료를 정해진 개수만큼 쓰기 |
fseek() | 파일에서 입출력 위치를 이동 |
feof() | 파일의 끝인가를 판별 |
ferror() | 파일의 입출력 시 에러 발생 유무 조사 |
'방송통신대학 > C 프로그래밍' 카테고리의 다른 글
파일처리함수 (fclose, 파일 닫기) (0) | 2020.06.18 |
---|---|
파일처리함수 (1) | 2020.06.17 |
공용체 union (0) | 2020.06.15 |
구조체struct 의 비트필드 bit field (0) | 2020.06.14 |
함수function와 구조체struct (2) | 2020.06.13 |