fopen 함수

FILE *fopen(const char *path,const char *mode); 파일 스트림을 여는 함수

입력 매개 변수 리스트

path 절대 경로 혹은 상대 경로

mode rwba+의 조합 문자열

반환 값

성공 시 파일 스트림 포인터, 실패 시 NULL 포인터

 

mode는 “r”, “w”, “a”, “rb”, “wb”, “r+”, “w+”, “a+” “r+b”, “rb+”, “w+b”, “wb+”, “a+b”, “ab+”중에서 사용합니다.

“r” 읽기 모드

“w” 쓰기 모드, 새로운 파일을 생성, 이미 있으면 파일 내용을 지움

“a” 추가 모드, 파일이 없으면 새로운 파일을 생성, 쓰기 작업 시 파일의 끝에 쓰여짐

“rb”, “wb”, “ab” 는 바이너리 파일을 여는 것입니다. 그 외의 사항은 “r”, “b”, “a”와 같음

“r+” “w+”, “a+” 읽기 쓰기가 가능한 모드입니다. 그 외의 사항은 “r”, “w”, “a”와 같음

“r+b”, “rb+”, “w+b”, “wb+”, “a+b”, “ab+”는 바이너리 파일을 여는 것입니다. 그 외의 사항은 “r+, “w+’, “a+”와 같습니다.

a 모드로 열었을 때 쓰기 함수를 호출하면 파일의 끝으로 이동 후에 쓰여집니다.

C11 표준에서는 FILE 구조체인 struct _iobuf의 내부 멤버를 숨기고 있습니다. 개발자에 의해 직접 멤버에 접근하는 것을 방지하여 안전성을 도모하고 있습니다. 그리고 fopen 함수의 반환 값을 첫 번째 입력 인자로 파일 포인터 변수의 주소(파일 포인터의 포인터)를 받아 설정하는 fopen_s 함수를 제공합니다.

사용 예

명령줄

input.txt 내용

출력

새로 만들어진 output.txt 내용

테스트를 하실 때는 명령줄에서 하시기 바랍니다.

명령 프롬프트에서 ex_fopen.exe output.txt input.txt