For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.
Closes a stream (
fclose) or closes all open streams (
int fclose( FILE *stream ); int _fcloseall( void );
fclose returns 0 if the stream is successfully closed.
_fcloseall returns the total number of streams closed. Both functions return
EOF to indicate an error.
fclose function closes
NULL, the invalid parameter handler is invoked, as described in Parameter Validation. If execution is allowed to continue,
EINVAL and returns
EOF. It is recommended that the
stream pointer always be checked prior to calling this function.
See _doserrno, errno, _sys_errlist, and _sys_nerr for more information on these, and other, error codes.
_fcloseall function closes all open streams except
stderr (and, in MS-DOS,
_stdprn). It also closes and deletes any temporary files created by
tmpfile. In both functions, all buffers associated with the stream are flushed prior to closing. System-allocated buffers are released when the stream is closed. Buffers assigned by the user with
setvbuf are not automatically released.
Note: When these functions are used to close a stream, the underlying file descriptor and OS file handle (or socket) are closed, as well as the stream. Thus, if the file was originally opened as a file handle or file descriptor and is closed with
fclose, do not also call
_close to close the file descriptor; do not call the Win32 function
CloseHandle to close the file handle.
_fcloseall include code to protect against interference from other threads. For non-locking version of a
For additional compatibility information, see Compatibility in the Introduction.
See the example for fopen.