더북(TheBook)

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), 필요에 따라 프로그램을 종료시킨다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.