반응형
#fopen #fclose
#include <stdio.h> FILE *fopen(const *filename, const char *mode); |
fopen 함수는 filename으로 지정된 파일을 엽니다. 파일을 여는데 성공했으면 파일 포인터를 반환하고, 실패하면 NULL을 반환합니다.
mode는 다음과 같은 값을 사용합니다.
mode | 설명 |
r | Read. 읽기용으로 파일을 연다. 파일이 없으면 오류이다. |
w | Write. 쓰기용으로 파일을 연다. 파일을 새로 생성한다. 파일이 이미 존재하면 기존 파일에 덮어쓴다. |
a | Append. 추가용으로 파일을 연다. 파일이 없으면 새로 생성하고, 파일이 이미 존재하면 맨 뒤에 추가한다. |
r+ | 파일을 갱신하기 위해 연다. Read + Write 파일이 없으면 오류이다. |
w+ | 파일을 갱신하기 위해 연다. Write + Read 파일이 없으면 새로 생성한다. |
a+ | 파일에 추가하기 위해 파일을 연다. Append + Read 파일이 없으면 새로 생성하고, 파일이 이미 존재하면 뒤에 추가한다. |
파일을 열 때, t 또는 b를 덧붙여서 열 수 있습니다. t는 텍스트 모드, b는 이진 모드를 의미하며, t나 b가 생략되면 전역변수 _fmode에 의해 결정됩니다. _fmode가 O_BINARY이면 2진 모드로 파일을 열고, O_TEXT이면 텍스트 모드로 파일을 엽니다.
O_... 상수들은 <fcntl.h> 헤더에 정의되어 있습니다.
(예)
“r”
“rt”
“r+t”
“w+b”
다음 예제는 "test.txt" 파일을 "text_bak.txt"로 복사하는 예제입니다.
#define _CRT_SECURE_NO_WARNINGS // Visual Studio
#include <stdio.h>
int main()
{
FILE* fin, * fout;
if ((fin = fopen("test.txt", "rt")) == NULL)
{
printf("파일 읽기 오류\n");
return -1;
}
if ((fout = fopen("test_bak.txt", "wt")) == NULL)
{
printf("파일 쓰기 오류\n");
return -2;
}
while (!feof(fin))
fputc(fgetc(fin), fout);
printf("파일 복사 성공\n");
fclose(fin);
fclose(fout);
return 0;
}
반응형
'C_C++ > C_라이브러리_함수' 카테고리의 다른 글
(C언어) fputc: 스트림에 한 문자를 출력한다 (0) | 2023.02.08 |
---|---|
(C언어) fprintf: 형식이 지정된 데이터를 스트림에 출력한다 (0) | 2023.02.07 |
(C언어) fgets: 스트림에서 한 문자열을 읽어들인다 (0) | 2023.02.07 |
(C언어) fgetc: 스트림에서 한 문자를 읽어들인다 (0) | 2023.02.07 |
(C언어) feof: 스트림에서 파일의 끝(End Of File)인지 감지한다 (0) | 2023.02.06 |