변수, 배열, 구조체들은 모두 메모리에 저장되므로 프로그램이 종료되면 데이터가 사라진다.

따라서 데이터를 영구적으로 보존하려면 보조 저장장치에 보관해야 한다.

C에서는 텍스트 파일과 이진 파일 두가지 파일 유형이 이다.

텍스트 파일은 사람이 읽을 수 있는 텍스트가 들어 있는 파일이다.

텍스트 파일은 연속적인 줄로 구성된다.

각 줄은 여러개의 문자들을 포함할 수 있으며 줄의 끝을 알리는 문자(\n)로 종료된다.

그에 비해 이진파일은 사람이 읽을 수 없다.

그리고 모든 데이터는 2진수 형태로 저장되므로 줄바꿈이 없다.

C언어어에서의 파일은

파일열기 - 파일읽기나 쓰기 - 파일 닫기

순으로 과정이 이루어진다.

파일 열기

파일을 열기 위해서는 우선 FILE 구조체로 변수를 선언해야 한다.

FILE은 stdio.h에 typedef을 이용해 선언된 구조체 자료형이다.

FILE *fp; // fp 포인터 변수 선언

fp = fopen(“test.txt”,”w”);

fopen 반환값이 주소값이기 때문에 포인터변수로 받는다

첫번째 매개 변수는 파일의 이름을 나타내는 문자열이다.

두번째 매개 변수는 파일을 여는 모드를 의미한다.

이진파일인지, 파일을 쓸것인가 읽은것인가를 나타낼 수 있다.

   
“r” 읽기모드로 파일을 연다. 파일이 없을 시 오류가 발생한다
“w” 쓰기 모드로 새로운 파일을 생성한다. 파일이 있을시 기존의 파일이 지워진다.
“a” 추가 모드로 파일을 연다. 기존 파일이 있으면 파일이 끝에 데이터가 추가된다. 파일이 없으면 파일을 만든다
“r+” 일기모드로 파일을 연다. 쓰기 모드로 전환할 수 있다. 파일이 반드시 존재해야 한다
“w+” 쓰기 모드로 새로운 파일을 생성한다. 읽기 모드로 전환할 수 있다. 파일이 이미 존재하면 기존의 파일이 지워진다
“a+” 추가 모드로 파일을 연다. 읽기 모드로 전환 할 수 없다. 기존 파일이 있으면ㅇ 파일의 끝에 데이터가 추가된다
“t” 텍스트 파일 모드로 파일을 연다
“b” 이진 파일 모드로 파일을 연다

+가 붙은 모드는 읽기와 쓰기 변환이 가능하다.

fflush(),fsetpos(), fseek(), rewind() 같은 함수를 사용하면 된다.

파일 닫기

파일 닫기는 fclose()함수가 필요하다

fclose 함수는 stdio.h에 정의되어 있다.

close(fp) //fp는 포인터 변수

카테고리:

업데이트: