c - Should I fclose(file) if an error occured? -
code:
file *fp = fopen(filename, "r"); if (!fp) { fprintf(stderr, "failed open file\n"); // fclose(fp) <-- should close file here? exit(1); } // operations on file. fclose(fp);
question:
if fopen()
fails open file, should still call fclose()
?
no, don't need call fclose()
inside if
block. once fopen()
fails, retruns null need not closed.
to elaborate, if fopen()
success, return file *
. needs closed. fwiw, returned pointer in case, of whatever value, gurantees compare unequal null. in other words, if fopen()
success, returned pointer fail if(!fp)
check.
in error scenario (when file cannot opned some reason), null retrurned. null return value means, file not opened. don't close not opened. simple.
Comments
Post a Comment