Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ fclose(3S) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

close(2)

exit(2)

fopen(3S)

setbuf(3S)

stdio(3S)

lfs(5)

stdio(5)

fclose(3S)                                                       fclose(3S)

NAME
     fclose, fflush - close or flush a stream

SYNOPSIS
     #include <stdio.h>

     int fclose(FILE *stream);

     int fflush(FILE *stream);

DESCRIPTION
     The fclose() function causes the stream pointed to by stream to be
     flushed and the associated file to be closed. Any unwritten buffered
     data for the stream is written to the file; any unread buffered data
     is discarded. The stream is disassociated from the file. If the asso-
     ciated buffer was automatically allocated, it is deallocated. It marks
     for update the stctime and stmtime fields of the underlying file, if
     the stream was writable, and if buffered data had not been written to
     the file yet. The fclose() function will perform a close() on the file
     descriptor that is associated with the stream pointed to by stream.

     After the call to fclose(), any use of stream causes undefined
     behavior.

     If stream points to an output stream or an update stream on which the
     most recent operation was not input, fflush() causes any buffered data
     for the named stream to be written to that file. The stctime and
     stmtime fields of the underlying file are marked for update.

     When calling fflush(), if stream is a null pointer, all files open for
     writing are flushed.

ERRORS
     The following error code descriptions are function-specific. You will
     find a general description in introprm2(2) or in errno(5).

     The fclose() or fflush() function will fail if:

     EAGAIN    The ONONBLOCK flag is set for the file descriptor underly-
               ing stream 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 maximum
               file size or the process' file size limit.

     EFBIG     The file is a regular file and an attempt was made to write
               at or beyond the offset maximum associated with the corre-
               sponding stream.

     EINTR     The function was interrupted by a signal.



Page 1                       Reliant UNIX 5.44                Printed 11/98

fclose(3S)                                                       fclose(3S)

     EIO       The process is a member of a background process group
               attempting to write to its controlling terminal, TOSTOP is
               set, the process is neither ignoring nor blocking SIGTTOU
               and the process group of the process is orphaned. This error
               may also be returned under implementation-dependent condi-
               tions.

     ENOSPC    There was no free space remaining 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 will also
               be sent to the process.

     The fclose() or fflush() function may fail if:

     ENXIO     A request was made of a non-existent device, or the request
               was outside the device.

RESULT
     Upon successful completion these functions return a value of zero.
     Otherwise EOF is returned and errno is set to indicate the error.

SEE ALSO
     close(2), exit(2), fopen(3S), setbuf(3S), stdio(3S), lfs(5), stdio(5).





























Page 2                       Reliant UNIX 5.44                Printed 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026