본문 바로가기

C Langauage

Chapter 13. 파일 입출력

Chapter 13. 파일 입출력 

1. 파일 입출력

 - 표준 입출력 함수

  · 출력 장치인 Monitor로는 출력을, 입력 장치인 Keyboard로는 입력을 수행한다.

  · 파일 처리 함수는 보조기억장치 파일에 데이터를 입출력 한다.

 - 파일 입출력 Mode

  · Text Mode

   ◦ Program에서 파일로 읽어 들이거나 쓰는 경우에 데이터 변환이 일어나는 입출력 Mode

   ◦ 일반적인 문자열 같은 Text 기반의 데이터에 사용한다.

  · Binary Mode

   ◦ 변환을 하지 않는 데이터를 입출력하는 Mode

   ◦ 영상 데이터와 같이 데이터 변환이 발생하면 안 되는 경우에 사용한다.

 - FILE Pointer를 이용한 파일 입출력

  · 파일 입출력 수행과정

   ◦ 파일 열기

   ◦ 입출력 수행

   ◦ 파일 닫기

 - 파일 모드

모드

스트림의 성격

파일이 없을 시

r

 읽기 가능

Error

w

 쓰기 가능

Create

a

 파일 끝에 덧붙여 쓰기 가능

Create

r+

 읽기 쓰기 가능

Error

w+

 읽기 쓰기 가능

Create

a+

 읽기 덧붙여 쓰기 가능

Create

  · Text Mode는 t를, Binary Mode는 뒤에 b를File Mode의 뒤에 붙인다. 


2. 파일 입출력 관련 함수

 - 파일 입출력 관련 함수

  · fopen 

1
FILE * fopen(const char *filename, const char *mode)
cs

   ◦ fopen 함수가 호출되면 System 내에 FILE 구조체 변수가 생성되며 생성된 구조체 변수에는 해당 파일에 대한 정보가 담긴다.

   ◦ FILE 구조체의 Pointer는 파일을 가리키는 지시자 역할을 한다.

   ◦ Parameter

    ▹ filename : 파일 이름

    ▹ mode : 출력과 입력, Text와 Binary를 구분한다.(파일 모드 참조)

    ▹ 구조체 생성 과정

  · fclose 

1
int fgetc(FILE *stream)
cs

   ◦ 운영체제가 할당한 자원을 반환하는 역할을 하며 Buffering되어 있던 데이터의 출력

  · fgetc 

1
int fgetc(FILE *stream)
cs

   ◦ 스트림에서 즉, FILE 구조체를 통해 파일 내의 한 문자를 읽어오는 함수

   ◦ 파일 내에 입력된 문자를 반환하지만 끝 문자를 만나면 EOF를 가지게 되기 때문에 정수형 변수(int)에 대입해야 한다.

  · fputs 

1
int fputs(const char *string, FILE *stream)
cs

   ◦ 스트림에 문자열을 출력 즉, 파일에 문자열을 입력하는 함수로 개행 문자(\n)를 포함해 한 번에 입력한다.

   ◦ NULL 문자 이전까지 모두 입력하므로 문자열 끝은 NULL로 끝나야한다.

   ◦ 출력된 마지막 문자를 반환하며 Error가 발생하면 EOF를 반환한다.

  · fgets

1
char *fgets(char *s, int n, FILE *stream);
cs

   ◦ 스트림에서 즉, FILE 구조체를 통해 파일 내의 문자열을 읽어와 문자열 변수(char *s)에 저장하는 함수이다.

   ◦ 개행 문자(\n) 또는 두 번째 매개변수(int n)의 길이까지 읽어 들인다.

   ◦ 개행 문자의 영향을 받기 때문에 행단위로 읽어 들일 경우 많이 사용한다.

   ◦ 반환형은 문자열이 저장된 배열의 주소이기 때문에 파일의 끝을 만나 저장된 문자열이 없는 경우 NULL을 반환한다.

  · fprintf 

1
int fprintf(FILE *stream, const char *format [,argument]...);
cs

   ◦ 스트림에서 서식화된 데이터 즉, 인코딩이 되어 형식이 바뀐 데이터를 출력하기 위해 사용되는 함수이다.

   ◦ 매개변수로 FILE Pointer를 사용하는 것 외에 printf와 동일하다.

  · fscanf 

1
int fscanf(FILE *stream, const char *format [,argument]...);
cs

   ◦ 스트림에서 서식화된 데이터 즉, 인코딩이 되어 형식이 바뀐 데이터를 읽어오기 위해 사용되는 함수이다.

   ◦ 매개변수로 FILE Pointer를 사용하는 것 외에 printf와 동일하다.

  · fcloseall 

1
int fcloseall();
cs

   ◦ 열려있는 모든 스트림(파일)을 닫는다.


'C Langauage' 카테고리의 다른 글

Chapter 12. 포인터 고급  (0) 2015.08.05
Chapter 11. 구조체(Struct)  (0) 2015.08.05
Chapter 10. 전처리기(Preprocessor)  (0) 2015.08.05
Chapter 9. 문자열(String)  (0) 2015.08.05
Chapter 8. 포인터(Pointer)  (0) 2015.08.05