Name
fclose - close a stream
Synopsis
#include <stdio.h>
int fclose(FILE *stream);
Description
The fclose() function flushes the stream pointed to by stream
(writing any buffered output data using fflush()) and closes the
underlying file descriptor.
Example
#include <assert.h>
#include <stdio.h>
int main() {
FILE *file = fopen("log.txt", "w");
assert(file != NULL); // the file should be opened successfully
// Write some text to the file
fprintf(file, "1 + 2 is %d\n", 1 + 2);
int close_result = fclose(file);
assert(close_result == 0); // the file should be closed successfully
}
See also the fopen() example.
Return Value
Upon successful completion, 0 is returned. Otherwise, EOF is returned and
errno is set to indicate the error. In either case, any further access
(including another call to fclose()) to the stream results in undefined
behavior.
Errors
- EBADF
- The file descriptor underlying stream is not valid.
fclose() may also fail and set errno for any of the errors specified for close(), write(), or fflush().