After a disk file is read, written, or appended with some new data,
you have to disassociate the file from the specified stream. This is
done by calling the fclose function:
#include <stdio.h> int fclose(FILE *stream);
If fclose closes a file successfully, it returns
0. Otherwise, the function returns EOF.
Normally, this function fails only when the disk is removed before
the function is called or there is no more space left on the disk.
Remember to close a file after the I/O operations. Otherwise, the data
saved in the file may be lost. In addition, failing to close a file
when you are done with it may prevent other programs from accessing
the file later.
The next program shows how to open and close a text file, checking the values returned from the functions:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <stdio.h>
enum {SUCCESS, FAIL};
int main(void)
{
FILE *file_ptr;
char filename[] = "review.txt";
int result = SUCCESS;
if ( (file_ptr = fopen(filename, "r") ) == NULL)
{
printf("Cannot open %s.\n", filename);
result = FAIL;
}
else
{
printf("File opened; ready to close it.\n");
if (fclose(file_ptr) != 0)
{
printf("Cannot close %s.\n", filename);
result = FAIL;
}
}
return result;
}
|