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

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