8.3.2 파일과 스트림
출력을 실제 파일에 쓰고 싶다면 fopen 함수를 이용하여 실행 프로그램과 파일을 연결시키면 된다.
FILE* fopen(char const path[static 1], char const mode[static 1]); FILE* freopen(char const path[static 1], char const mode[static 1], FILE *stream);
이 함수를 사용하는 간단한 예는 다음과 같다.
int main(int argc, char* argv[argc+1]) { FILE* logfile = fopen("mylog.txt", "a"); if (!logfile) { perror("fopen failed"); return EXIT_FAILURE; } fputs("feeling fine today\n", logfile); return EXIT_SUCCESS; }
이 코드는 "mylog.txt"란 파일을 연다C. 이 파일은 logfile이란 변수를 통해 접근하며, 모드 인수를 "a"로 지정했으므로 파일 뒤에 덧붙인다. 다시 말해 기존 파일(이 존재한다면) 내용은 그대로 두고, 그 뒤부터 기록한다.
파일 열기에 실패하는 원인은 여러 가지가 있다. 파일 시스템이 꽉 찼기 때문일 수도 있고, 지정한 경로에 대한 쓰기 권한이 현재 프로세스에 없기 때문일 수도 있다. 이런 오류가 발생하면 그 원인을 확인하고(TAKEAWAY 8.2), 필요에 따라 프로그램을 종료시킨다.