C의 fopen() 메서드는 지정된 파일을 여는 데 사용됩니다.
문제를 이해하기 위해 예를 들어보겠습니다.
구문
FILE *fopen(filename, mode)
fopen()을 사용하여 파일을 여는 유효한 모드는 'r', 'w', 'a', 'r+', 'w+', 'a+'입니다. 자세한 내용은 방문 C 라이브러리 함수 - fopen()
쓰기 모드의 기존 파일에 대한 fopen()
열려는 파일이 현재 디렉토리에 없으면 쓰기 모드로 비어 있는 새 파일이 생성됩니다.
열려는 파일이 현재 디렉토리에 존재하고 'w' / 'w+'를 사용하여 열려 있으면 쓰기 전에 내용을 삭제합니다.
예시
솔루션 작동을 설명하는 프로그램
#include <stdio.h> #include <stdlib.h> int main(){ FILE *opFile = fopen("test.txt", "w"); if (opFile == NULL){ puts("Couldn't open file"); exit(0); } else{ fputs("includehelp", opFile); puts("Write operation successful"); fclose(opFile); } return 0; }
출력
Write operation successful
파일의 초기 내용 - C 프로그래밍 언어
추가 작업 후 내용 - 도움말 포함
쓰기 작업은 작업을 수행하지만 쓰기 작업이 수행되기 전에 파일에 있던 모든 내용을 삭제합니다. 이를 해결하기 위해 C 프로그래밍 언어는 프로그램의 요구 사항에 따라 프로그래머가 사용할 수 있는 두 가지 접근 방식으로 업데이트되었습니다.
-
'a'(추가) 모드 - 이 모드는 파일에 작성된 내용의 끝에 새 내용을 추가합니다.
-
'wx' 모드 - 파일이 이미 디렉토리에 있으면 NULL을 반환합니다.
예시
'a' 모드를 사용하여 기존 파일에 쓰기 작업을 설명하는 프로그램
#include <stdio.h> #include <stdlib.h> int main(){ FILE *opFile = fopen("test.txt", "a"); if (opFile == NULL){ puts("Couldn't open file"); exit(0); } else{ fputs("includehelp", opFile); puts("Write operation successful"); fclose(opFile); } return 0; }
출력
Write operation successful
파일의 초기 내용 - C 프로그래밍 언어
추가 작업 후 내용 - C 프로그래밍 언어 includehelp
예시
'wx' 모드를 사용하여 기존 파일에 쓰기 작업을 설명하는 프로그램
#include <stdio.h> #include <stdlib.h> int main(){ FILE *opFile = fopen("test.txt", "wx"); if (opFile == NULL){ puts("Couldn't open file"); exit(0); } else{ fputs("includehelp", opFile); puts("Write operation successful"); fclose(opFile); } return 0; }
출력
Write operation successful