How do I close a file and remove it?
I have the following code:
FILE *filePtr = fopen("fileName", "w");
...
Now I want to close filePtr and remove the file "fileName".
Should I:
fclose(filePtr);
remove("fileName");
Or:
remove("fileName");
fclose(filePtr);
Does it matter which I do first?
Thanks!!
As man unlink(2) says (for Unix systems) :
So the order doesn't matter at all.
That is OS-dependent. On *nix, deleting an open file leaves it open and the data on disk, but removes the filename from the filesystem, and actually deletes the file on close; some other operating systems may not let you delete an open file at all. Therefore the former is recommended for maximum portability.
You do not need to
fopen
a file toremove
it. But, in linux, if youremove
anfopen
ed file, it will be deleted only after closing it. You can still read/write to it.It makes more sense to
fclose
and then unlink.