본문으로 바로가기

[C]fopen, fclose 함수란?

category 프로그래밍/C 2018. 1. 3. 00:24
728x90
반응형

오늘은 fopen, fclose 함수에 대해서 알아보겠습니다.


fopen 함수는 지정된 파일을 모드에 맞게 열고, 스트림과 연결된 파일 포인터를 리턴합니다.

fclose 함수는 fopen 함수로 열려진 파일을 닫고, 스트림을 해제합니다.


fopen와 fclose 함수는 헤더파일 stdio.h 안에 정의되어 있습니다.


 

 

 



1. fopen()


함수의 원형은 아래와 같습니다.


FILE* fopen(const char*, const char*)


fopen 함수의 반환값은 FILE*입니다. 


fopen 함수는 인자로 2개의 문자열을 받습니다.


첫번째 인자는 처리하려는 파일의 이름이고, 두번째 인자는 파일의 접근 모드입니다.


파일 접근 모드의 종류는 아래와 같습니다.


 모드

 설명

읽기만 가능합니다.

파일이 존재하지 않을 경우 에러가 리턴됩니다.

 w

쓰기만 가능하며, 파일이 없으면 생성합니다.

파일이 존재하면 그 파일을 지우고 생성합니다.

 a

파일 끝에 추가만 가능합니다.

파일이 존재하지 않으면 파일을 새로 생성합니다.

 r+

읽기, 쓰기 모두 가능합니다.

존재하지 않을 경우 에러가 리턴된다.

 w+

 읽기, 쓰기 모두 가능하며, 파일이 없으면 생성합니다.

파일이 존재하면 그 파일을 지우고 생성합니다.

 a+

파일을 읽어서 파일 끝에 추가만 가능합니다.

파일이 존재하지 않으면 파일을 새로 생성합니다.

 t

 파일을 text 모드로 개방한다. 

입력 시, CF/LF를 “\n”으로 자동 변환하고 

출력 시에는 “\n”을 CF/LF로 자동 변환한다.

t나 b 생략시 텍스트 모드로 개방된다.

 b

 파일을 이진(binary) 모드로 개방한다.

개행 문자 “\n”을 변환없이 그대로 읽고 쓴다.


 

 

 



2. fclose()


함수의 원형은 아래와 같습니다.


int fclose(FILE* stream)


fopen 함수의 반환값은 int 입니다.


fopen 함수는 인자로 1개의 파일 포인터를 받습니다.


 

 



아래에서  fopen, fclose 예제를 한번 살펴보겠습니다.


#include <stdio.h>


int main() {

    FILE *fp = NULL;


    fp = fopen("test.txt", "w");

    if ( fp == NULL ) {

        printf("fopen fail!\n");

return -1;

    }

    printf("file open success!\n");


    fclose(fp); 


    return 1;

}


오늘의 포스팅은 여기까지입니다.


2018년 첫 포스팅입니다. 앞으로 자주 쓰겠습니다.


새해복 많이 받으세요~






728x90
반응형