파일 입출력 -1

언어/C 2016. 3. 10. 11:18

스트림(stream) : 데이터 이동의 경로가 되는 다리, program과 파일 사이에 스트림을 형성해야 데이터를 주고 받을 수 있다.

파일 : 운영체제에 의해서 그 구조가 결정되고 관리되는 대상, 파일 뿐만 아니라 스트림의 형성도 운영체제의 몫임을 기억해야 한다.


fopen 함수 호출을 통한 파일과의 스트림 형성과 FILE 구조체

1
2
#include <stdio.h>
FILE * fopen(const char * filename, const char * mode);


fopen 함수의 반환형은 FILE인데 구조체의 포인터이다. 파일을 가리키기 위한 용도로 사용됨.

이 포인터를 이용해서 파일에 데이터를 저장하거나 파일에 저장된 데이터를 읽게 된다.


fputc('A',fp); fp(파일포인터)가 가리키는 곳에 문자 'A' 저장 


fclose : 스트림의 소멸(해제)을 요청하는 함수

1
2
3
#include <stdio.h>
 
int fclose(FILE * stream);


fclose 함수가 호출이 되면 데이터는 안정적으로 저장이 됨.

개방되었던 파일을 닫아주어야 하는 이유 : 운영체제가 할당한 자원의 반환,  버퍼링 되었던 데이터의 출력


fflush : 스트림을 종료하지 않고 버퍼만 비우고 싶을 때

1
2
3
#include <stdio.h>
 
int fflush(FILE * stream);


출력 버퍼를 비움 : 출력 버퍼에 저장된 데이터를 목적지로 전송한다는 의미

입력 버퍼를 비움 : 입력 버퍼에 저장된 데이터를 소멸 시킨다는 의미

fflush 함수는 출력 버퍼를 비우는 함수, 입력 버퍼를 대상으로 호출할 수 없음


저장한 파일을 읽어들일 때에는 fopen함수의 mode부분을 "rt"로 바꿔주고 fgetc로 읽어들이면 됨


'언어 > C' 카테고리의 다른 글

파일 입출력 -3  (0) 2016.03.18
파일 입출력 -2  (0) 2016.03.13
구조체 기초 (열거형 enum)  (0) 2016.03.10
구조체 기초 (union, struct의 차이)  (0) 2016.03.07
escape sequence  (0) 2016.02.26
Posted by 知彼知己百戰不殆
,