fclose 에러.. 왜그럴까요
낮선검객
2023.04.01
멀쩡하던 프로그램에서, 다음 코드 몇개만 넣어줬는데 에러가 발생하네요
FILE * check;
check=fopen(name[1], rb);
fclose(check);
이 3문장 밖에 없는데 말입니다. (물런 FILE * check;는 맨 위에 있으니 순서 때문에 오류가 발생하는 것도 아닙니다.)
이미 해당 파일이 존재하는지 체크하려고 넣은 코드인데 말입니다. 사이에 if(check!=NULL) 이런식으로 만들려고 했는데요.
그런데 또 이상한게
FILE * check;
int error;
check=fopen(name[1], rb);
error=fclose(check);
이러면 또 에러가 안납니다 ..
대체 왜그럴까요.
참고로 이 밑에는 file=fopen(name[1], wb);도 있습니다. 이미 파일이 존재하면 에러를 뛰우고 없으면 파일을 생성한다. 이런식으로 짤 생각이라서요.
-
큐트
답변 감사드립니다!
-
다연
fopen이 성공한 경우에만 fclose를 할 수 있습니다.
check=fopen(name[1], \rb\);
if (check == 0) printf(\open error\\n\);
else fclose(check);