C/C

fopen(), fclose() 파일입출력

HicKee 2022. 10. 15. 00:24

헤더파일 <stdio.h>

fopen()

지정한 파일을 오픈 (파일스트림을 생성)

filename이 지정한 파일을 연다.

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

FILE *fopen(파일의 경로와 이름, 열기 모드);

 

 읽기  - 읽기만 가능하며 파일이 존재해야 한다. 존재하지 않을 경우 에러.
w  쓰기 - 쓰기만 가능하며 파일을 생성한다. 파일이 존재하면 파일내용을 새로 덮어씀.
a  추가  -  파일 끝에 추가만 가능하며 파일이 존재하지 않으면 파일을 새로 생성
+  읽기/쓰기 로 ‘r’, ‘w’, ‘a’와 함께 사용
b  바이너리 - 파일을 이진(binary) 모드로 오픈
 텍스트 - 파일을 text 모드로 오픈

 

파일 열기 작업이 실패하면 NULL 포인터를 반환

 

읽기  "r"

FILE* fr = NULL;
	fr = fopen(fileAddress, "r");
	if (fr == NULL) {
		printf("파일을 읽어올 수 없습니다.\n");
		return;
	}

쓰기 "w"

	FILE* fw = NULL;
	fw = fopen(fileAddress,"w");
	if (fw==NULL) {
		printf("파일을 생성할수 없습니다.\n");
		return;
	}

추가 "a"

	FILE* fw = NULL;
	fw = fopen(fileAddress,"a");
	if (fw==NULL) {
		printf("파일을 생성할수 없습니다.\n");
		return;
	}

fclose()

fopen함수로 개방한 파일을 닫음

int fclose (FILE* filePointer)

fclose(fr);

정상적으로 파일을 닫았을 땐 0 그렇지 않을땐 EOF (-1)을 반환

파일을 어떤식으로 열었을때는 반드시 fclose(); 를 사용하자

 

파일이 닫히지 않으면 데이터가 손실

파일에 데이터를 작성할 때 
데이터가 버퍼에 먼저 입력되고 버퍼가 가득 찬 후 파일이 파일로 작성
다 쓰고 남은 스트림 파일이 메모리에 상주하게됨 
만약 오류로 닫히게 된다면 데이터에 손실이 있을 수 있다

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

strstr() 문자열 찾기  (0) 2022.10.30
strcpy(), strncpy() 문자열 복사(copy)  (0) 2022.10.19
time(), localtime() 시간  (0) 2022.10.13
파일 입출력  (0) 2022.10.11
모듈화 2 - 구조체  (0) 2022.10.08