Standard C
C 언어 fopen 사용법 완벽 가이드
레퍼러
2025. 2. 22. 13:39
fopen 함수는 C 언어에서 파일을 열거나 생성할 때 사용됩니다. 파일 입출력 작업의 시작점으로, 파일을 읽기, 쓰기, 추가 등의 다양한 모드로 열 수 있습니다.
1. fopen 함수 기본 문법
#include <stdio.h>
FILE *fopen(const char *filename, const char *mode);
매개변수 설명:
- filename: 열거나 생성할 파일의 이름(경로 포함).
- mode: 파일을 열 때 사용할 모드 문자열.
반환 값:
- 성공 시 FILE 포인터 반환.
- 실패 시 NULL 반환.
2. 파일 열기 모드 설명
모드 설명
"r" | 읽기 전용, 파일이 존재해야 함 |
"w" | 쓰기 전용, 파일이 없으면 생성, 있으면 덮어쓰기 |
"a" | 추가 전용, 파일이 없으면 생성 |
"r+" | 읽기/쓰기, 파일이 존재해야 함 |
"w+" | 읽기/쓰기, 파일이 없으면 생성, 있으면 덮어쓰기 |
"a+" | 읽기/추가, 파일이 없으면 생성 |
"b" | 바이너리 파일 모드(플랫폼 의존) |
3. 기본 사용 예제
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "r");
if (!file) {
perror("파일 열기 실패");
return 1;
}
printf("파일이 성공적으로 열렸습니다.\\n");
fclose(file);
return 0;
}
출력 결과:
파일이 성공적으로 열렸습니다.
4. 실전 활용 예제
4.1. 파일 작성
#include <stdio.h>
int main() {
FILE *file = fopen("output.txt", "w");
if (!file) {
perror("파일 열기 실패");
return 1;
}
fprintf(file, "fopen 함수 사용 예제입니다.\\n");
fclose(file);
printf("파일 작성이 완료되었습니다.\\n");
return 0;
}
출력 결과:
파일 작성이 완료되었습니다.
4.2. 파일 추가 쓰기
#include <stdio.h>
int main() {
FILE *file = fopen("output.txt", "a");
if (!file) {
perror("파일 열기 실패");
return 1;
}
fprintf(file, "새로운 줄 추가 중...\\n");
fclose(file);
printf("파일에 데이터가 추가되었습니다.\\n");
return 0;
}
출력 결과:
파일에 데이터가 추가되었습니다.
5. fopen 사용 시 주의할 점
- 반환 값 확인: fopen이 NULL을 반환하는 경우, perror 또는 strerror를 사용하여 오류를 확인하세요.
- 파일 경로 유효성: 경로가 잘못되었거나 권한이 없으면 파일 열기에 실패할 수 있습니다.
- 적절한 모드 선택: 작업에 맞는 파일 모드를 사용하여 데이터 손실을 방지하세요.
- 파일 닫기: 파일 사용 후 fclose를 호출하여 리소스를 해제하세요.
6. 오류 처리 예제
#include <stdio.h>
int main() {
FILE *file = fopen("nonexistent.txt", "r");
if (!file) {
perror("파일 열기 실패");
return 1;
}
fclose(file);
return 0;
}
출력 결과:
파일 열기 실패: No such file or directory
7. 결론
fopen 함수는 C 언어 파일 입출력 작업의 핵심적인 함수입니다. 적절한 파일 모드를 선택하고 반환 값을 확인하는 것이 중요합니다. 오류 처리와 리소스 해제를 통해 안정적인 파일 입출력 프로그램을 작성할 수 있습니다.