【기 능】 열려있는 파일을 close하고 다시 open한다.
【소 속】 stdio.h
#include <stdio.h>
【서 식】
FILE *freopen(const char *filename, const char *mode, FILE *fp);
【설 명】
현재 오픈 되어 있는 파일(파일 포인터 *fp에 보존되어 있는 파일)을 close하고, 파일네임(filename)의 파일을 지정 모드(mode)로 오픈하여 파일 포인트에 다시 넣어준다.
【인 수】
const char *filename : 재 오픈할 파일명
const char *mode : 재 오픈할 모드
FILE *fp : file pointer. fopen함수로 오픈한 파일정보를 가지고 있는 핸들러, 재오픈시 파일정보가 입력된다.
【리턴 값】
성공 : 파일 포인터(핸들러)
실패 : NULL
【사용 예】
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char filename[] = "test_data.txt";
FILE *fp;
/* 파일을 읽기 모드로 오픈 */
((fp = fopen(filename, "r")) == NULL) {
printf("파일 오픈 에러\n");
exit(EXIT_FAILURE);
}
else{
printf("파일 오픈 성공 : 읽기 모드\n");
}
if ((fp = freopen(filename, "w", fp)) == NULL) {
printf("파일 재 오픈 에러\n");
exit(EXIT_FAILURE);
}
else{
printf("파일 재 오픈 성공 : 쓰기 모드\n");
}
fclose(fp);
return 0;
}
【결 과】
파일 오픈 성공 : 읽기 모드
파일 재 오픈 성공 : 쓰기 모드