fclose - close a stream
int fclose( FILE *stream);
The fclose function dissociates the named stream from its
underlying file or set of functions. If the stream was
being used for output, any buffered data is written first,
Upon successful completion 0 is returned. Otherwise, EOF
is returned and the global variable errno is set to indi
cate the error. In either case any further access
(including another call to fclose()) to the stream results
in undefined behaviour.
EBADF The filedescriptor underlying stream is not valid.
The fclose function may also fail and set errno for any of
the errors specified for the routines close(2) or
Note that fclose only flushes the user space buffers pro
vided by the C library. To ensure that the data is physi
cally stored on disk the kernel buffers must be flushed
too, e.g. with sync(2) or fsync(2).
The fclose function conforms to ANSI X3.159-1989 (``ANSI
close(2), fcloseall(3), fflush(3), fopen(3), setbuf(3)