HP-UX Reference (11i v1 00/12) - 3 Library Functions A-M (vol 6)

__________________________________________________________________________________________________________________________________________________________________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________
STANDARD Printed by: Nora Chuang [nchuang] STANDARD
/build/1111/BRICK/man3/!!!intro.3c
________________________________________________________________
___ ___
f
fclose(3S) fclose(3S)
NAME
fclose(), fush() - close or flush a stream
SYNOPSIS
#include <stdio.h>
int fclose(FILE *stream);
int fflush(FILE *stream);
Obsolescent Interfaces
int fclose_unlocked(FILE *stream);
int fflush_unlocked(FILE *stream);
DESCRIPTION
fclose() causes any buffered data for the named stream to be written out, and the stream to be closed.
Buffers allocated by the standard input/output system may be freed.
fclose() is performed automatically for all open files upon calling exit(2).
If stream points to an output stream or an update stream in which the most recent operation was output,
fflush() causes any buffered data for the stream to be written to that file; otherwise any buffered data
is discarded. The stream remains open.
If stream is a null pointer, fflush() performs this flushing action on all currently open streams.
Obsolescent Interfaces
fclose_unlocked()
and fflush_unlocked() close or flush a stream.
APPLICATION USAGE
fclose() and fflush() are thread-safe. These interfaces are not async-cancel-safe. A cancellation
point may occur when a thread is executing fclose() or fflush().
RETURN VALUE
Upon successful completion, fclose() and fflush() return 0. Otherwise, they return EOF and set
errno to indicate the error.
ERRORS
fclose(), fclose_unlocked()
, fflush(), and fflush_unlocked() fail if:
[EAGAIN] The O_NONBLOCK flag is set for the file descriptor underlying 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 process’s file size limit or the
maximum file size (see ulimit(2)).
[EINTR] fclose() or fflush() was interrupted by a signal.
[EIO] The process is in a background process group and is attempting to write to its control-
ling terminal, TOSTOP is set, the process is neither ignoring nor blocking the
SIGTTOU signal, and the process group of the process is orphaned.
[ENOSPC] There was no free space remaining on the device containing the file.
[EPIPE] An attempt was made to write to a pipe that is not open for reading by any process. A
SIGPIPE signal is also sent to the process.
Additional errno values may be set by the underlying write(), lseek(), and close() functions
(see write(2), lseek(2) and close(2)).
WARNINGS
fclose_unlocked() and fflush_unlocked()
are obsolescent interfaces supported only for com-
patibility with existing DCE applications. New multithreaded applications should use
fclose() and
fflush().
HP-UX Release 11i: December 2000 1 Section 3215
___
___