title: “C언어 파일 입출력 1 파일 열기, 닫기” categories:

  • C

    #C언어 파일 입출력 1 파일 열기, 닫기 : 네이버 블로그

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

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

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는 포인터 변수

업데이트: