• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

file == NULL 질문드려요!

19.03.09 23:17 작성 조회수 445

0

파일에 텍스트를 쓰는 과정에서

FILE * file = fopen("C:\\Users\\USER\\Desktop\\text\\test.txt", "wb");

if (file == NULL)

{

prinf("파일 열기 실패\n");

return 1;

}

fputs("fputs 를 이용해서 글을 적어볼게요\r\n", file);

fputs("잘 적히는지 확인해주세요\n", file);

fclose(file);

여기서 fopen에서 text라는 폴더에 아무런 파일이 없음에도 불구하고 실행을 시키면 파일열기 실패라고 출력이 되지 않고 자동으로 text.txt라는 파일을 만들어서 글이 적힌뒤에 저장이 되어 있더라구요.

폴더가 있더라도 안에 파일이 없으면 file==NULL이 참이 되어서 if문이 실행되어야 하는거 아닌가요??

혹시 자동으로 파일이 만들어지는 기능같은게 있는건지 궁금합니다!

답변 1

답변을 작성해보세요.

1

안녕하세요! 파일을 여는 방식이 몇 가지 있는데요, 우리 코드에서 fopen 뒤에 들어가는 "wb"의 w (write)가 바로 쓰겠다는 의미입니다. r (read)은 읽겠다는 의미가 되구요. w 일때는 파일이 없어도 자동으로 만들어서 파일을 쓰게 되어서 잘 동작을 했던 거에요. r 인 경우에는 파일이 없으면 자동으로 생기지 않습니다 ^^ 더 자세한 설명은 아래 링크로 대신하겠습니다. 설명 중에서 표 부분을 살펴보시면 도움 될거에요. 감사합니다 !

https://shaeod.tistory.com/277