Closes or flushes a stream.
Standard C Library (libc.a)
#include <stdio.h>
int fclose ( Stream)
FILE *Stream;
int fflush ( Stream)
FILE *Stream;
The fclose subroutine writes buffered data to the stream specified by the Stream parameter, and then closes the stream. The fclose subroutine is automatically called for all open files when the exit subroutine is invoked.
The fflush subroutine writes any buffered data for the stream specified by the Stream parameter and leaves the stream open. The fflush subroutine marks the st_ctime and st_mtime fields of the underlying file for update.
If the Stream parameter is a null pointer, the fflush subroutine performs this flushing action on all streams for which the behavior is defined.
Stream | Specifies the output stream. |
Upon successful completion, the fclose and fflush subroutines return a value of 0. Otherwise, a value of EOF is returned.
If the fclose and fflush subroutines are unsuccessful, the following errors are returned through the errno global variable:
EAGAIN | The O_NONBLOCK flag is set for the file descriptor underlying the Stream parameter and the process would be delayed in the write operation. |
EBADF | The file descriptor underlying Stream is not valid. |
EFBIG | An attempt was made to write a file that exceeds the process' file size limit or the maximum file size. See the ulimit subroutine. |
EFBIG | The file is a regular file and an attempt was made to write at or beyond the offset maximum associated with the corresponding stream. |
EINTR | The fflush subroutine was interrupted by a signal. |
EIO | The process is a member of a background process group attempting to write to its controlling terminal, the TOSTOP signal is set, the process is neither ignoring nor blocking the SIGTTOU signal and the process group of the process is orphaned. This error may also be returned under implementation-dependent conditions. |
ENOSPC | No free space remained on the device containing the file. |
EPIPE | An attempt is made to write to a pipe or FIFO that is not open for reading by any process. A SIGPIPE signal is sent to the process. |
ENXIO | A request was made of a non-existent device, or the request was outside the capabilities of the device |
The close (close Subroutine) subroutine, exit, atexit, or _exit (exit, atexit, _exit, or _Exit Subroutine) subroutine, fopen, freopen, or fdopen (fopen, fopen64, freopen, freopen64 or fdopen Subroutine) subroutine, setbuf, setvbuf, setbuffer, or setlinebuf subroutine.
Input and Output Handling in AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs.