mirror of https://github.com/mkerrisk/man-pages
356 lines
8.7 KiB
Groff
356 lines
8.7 KiB
Groff
.\" Copyright (c) 1990, 1991 Regents of the University of California.
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgement:
|
|
.\" This product includes software developed by the University of
|
|
.\" California, Berkeley and its contributors.
|
|
.\" 4. Neither the name of the University nor the names of its contributors
|
|
.\" may be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" @(#)stdio.3 6.5 (Berkeley) 5/6/91
|
|
.\"
|
|
.\" Converted for Linux, Mon Nov 29 16:07:22 1993, faith@cs.unc.edu
|
|
.\" Modified, 2001-12-26, aeb
|
|
.\"
|
|
.TH STDIO 3 2001-12-26 "" "Linux Programmer's Manual"
|
|
.SH NAME
|
|
stdio \- standard input/output library functions
|
|
.SH SYNOPSIS
|
|
.B #include <stdio.h>
|
|
.sp
|
|
.B FILE *stdin;
|
|
.br
|
|
.B FILE *stdout;
|
|
.br
|
|
.B FILE *stderr;
|
|
.SH DESCRIPTION
|
|
The standard I/O library provides a simple and efficient buffered stream
|
|
I/O interface. Input and output is mapped into logical data streams and the
|
|
physical I/O characteristics are concealed. The functions and macros are
|
|
listed below; more information is available from the individual man pages.
|
|
.PP
|
|
A stream is associated with an external file (which may be a physical
|
|
device) by
|
|
.I opening
|
|
a file, which may involve creating a new file. Creating an existing file
|
|
causes its former contents to be discarded. If a file can support
|
|
positioning requests (such as a disk file, as opposed to a terminal) then a
|
|
.I file position indicator
|
|
associated with the stream is positioned at the start of the file (byte
|
|
zero), unless the file is opened with append mode. If append mode is used,
|
|
it is unspecified whether the position indicator will be placed at the
|
|
start or the end of the file. The position indicator is maintained by
|
|
subsequent reads, writes and positioning requests. All input occurs
|
|
as if the characters were read by successive calls to the
|
|
.BR fgetc (3)
|
|
function; all output takes place as if all characters were written by
|
|
successive calls to the
|
|
.BR fputc (3)
|
|
function.
|
|
.PP
|
|
A file is disassociated from a stream by
|
|
.I closing
|
|
the file. Output streams are flushed (any unwritten buffer contents are
|
|
transferred to the host environment) before the stream is disassociated from
|
|
the file. The value of a pointer to a
|
|
.B FILE
|
|
object is indeterminate after a file is closed (garbage).
|
|
.PP
|
|
A file may be subsequently reopened, by the same or another program
|
|
execution, and its contents reclaimed or modified (if it can be
|
|
repositioned at the start). If the main function returns to its original
|
|
caller, or the
|
|
.BR exit (3)
|
|
function is called, all open files are closed (hence all output streams are
|
|
flushed) before program termination. Other methods of program termination,
|
|
such as
|
|
.BR abort (3)
|
|
do not bother about closing files properly.
|
|
.PP
|
|
At program startup, three text streams are predefined and need not be
|
|
opened explicitly \(em
|
|
.I standard input
|
|
(for reading conventional input), \(em
|
|
.I standard output
|
|
(for writing conventional input), and
|
|
.I standard error
|
|
(for writing diagnostic output). These streams are abbreviated
|
|
.IR stdin , stdout
|
|
and
|
|
.IR stderr .
|
|
When opened, the standard error stream is not fully buffered; the standard
|
|
input and output streams are fully buffered if and only if the streams do
|
|
not to refer to an interactive device.
|
|
.PP
|
|
Output streams that refer to terminal devices are always line buffered by
|
|
default; pending output to such streams is written automatically whenever
|
|
an input stream that refers to a terminal device is read. In cases where a
|
|
large amount of computation is done after printing part of a line on an
|
|
output terminal, it is necessary to
|
|
.BR fflush (3)
|
|
the standard output before going off and computing so that the output will
|
|
appear.
|
|
.PP
|
|
The
|
|
.B stdio
|
|
library is a part of the library
|
|
.B libc
|
|
and routines are automatically loaded as needed by the compilers
|
|
.BR cc (1)
|
|
and
|
|
.BR pc (1).
|
|
The
|
|
.B SYNOPSIS
|
|
sections of the following manual pages indicate which include files are to
|
|
be used, what the compiler declaration for the function looks like and
|
|
which external variables are of interest.
|
|
.PP
|
|
The following are defined as macros; these names may not be re-used without
|
|
first removing their current definitions with
|
|
.BR #undef :
|
|
.BR BUFSIZ ,
|
|
.BR EOF ,
|
|
.BR FILENAME_MAX ,
|
|
.BR FOPEN_MAX ,
|
|
.BR L_cuserid ,
|
|
.BR L_ctermid ,
|
|
.BR L_tmpnam ,
|
|
.BR NULL ,
|
|
.BR SEEK_END ,
|
|
.BR SEEK_SET ,
|
|
.BR SEE_CUR ,
|
|
.BR TMP_MAX ,
|
|
.BR clearerr ,
|
|
.BR feof ,
|
|
.BR ferror ,
|
|
.BR fileno ,
|
|
.\" Not on Linux: .BR fropen ,
|
|
.\" Not on Linux: .BR fwopen ,
|
|
.BR getc ,
|
|
.BR getchar ,
|
|
.BR putc ,
|
|
.BR putchar ,
|
|
.BR stderr ,
|
|
.BR stdin ,
|
|
.BR stdout .
|
|
Function versions of the macro functions
|
|
.BR feof ,
|
|
.BR ferror ,
|
|
.BR clearerr ,
|
|
.BR fileno ,
|
|
.BR getc ,
|
|
.BR getchar ,
|
|
.BR putc ,
|
|
and
|
|
.B putchar
|
|
exist and will be used if the macros definitions are explicitly removed.
|
|
.SH "LIST OF FUNCTIONS"
|
|
.TP 10n
|
|
.B Function
|
|
.B Description
|
|
.TP
|
|
.B clearerr
|
|
check and reset stream status
|
|
.TP
|
|
.B fclose
|
|
close a stream
|
|
.TP
|
|
.B fdopen
|
|
stream open functions
|
|
.TP
|
|
.B feof
|
|
check and reset stream status
|
|
.TP
|
|
.B ferror
|
|
check and reset stream status
|
|
.TP
|
|
.B fflush
|
|
flush a stream
|
|
.TP
|
|
.B fgetc
|
|
get next character or word from input stream
|
|
.\" .TP
|
|
.\" .B fgetline
|
|
.\" get a line from a stream (BSD only; renamed to fgetln())
|
|
.TP
|
|
.B fgetpos
|
|
reposition a stream
|
|
.TP
|
|
.B fgets
|
|
get a line from a stream
|
|
.TP
|
|
.B fileno
|
|
return the integer descriptor of the argument stream
|
|
.TP
|
|
.B fopen
|
|
stream open functions
|
|
.TP
|
|
.B fprintf
|
|
formatted output conversion
|
|
.TP
|
|
.B fpurge
|
|
flush a stream
|
|
.TP
|
|
.B fputc
|
|
output a character or word to a stream
|
|
.TP
|
|
.B fputs
|
|
output a line to a stream
|
|
.TP
|
|
.B fread
|
|
binary stream input/output
|
|
.TP
|
|
.B freopen
|
|
stream open functions
|
|
.\" Not on Linux:
|
|
.\" .TP
|
|
.\" .B fropen
|
|
.\" open a stream
|
|
.TP
|
|
.B fscanf
|
|
input format conversion
|
|
.TP
|
|
.B fseek
|
|
reposition a stream
|
|
.TP
|
|
.B fsetpos
|
|
reposition a stream
|
|
.TP
|
|
.B ftell
|
|
reposition a stream
|
|
.TP
|
|
.B fwrite
|
|
binary stream input/output
|
|
.TP
|
|
.B getc
|
|
get next character or word from input stream
|
|
.TP
|
|
.B getchar
|
|
get next character or word from input stream
|
|
.TP
|
|
.B gets
|
|
get a line from a stream
|
|
.TP
|
|
.B getw
|
|
get next character or word from input stream
|
|
.TP
|
|
.B mktemp
|
|
make temporary filename (unique)
|
|
.TP
|
|
.B perror
|
|
system error messages
|
|
.TP
|
|
.B printf
|
|
formatted output conversion
|
|
.TP
|
|
.B putc
|
|
output a character or word to a stream
|
|
.TP
|
|
.B putchar
|
|
output a character or word to a stream
|
|
.TP
|
|
.B puts
|
|
output a line to a stream
|
|
.TP
|
|
.B putw
|
|
output a character or word to a stream
|
|
.TP
|
|
.B remove
|
|
remove directory entry
|
|
.TP
|
|
.B rewind
|
|
reposition a stream
|
|
.TP
|
|
.B scanf
|
|
input format conversion
|
|
.TP
|
|
.B setbuf
|
|
stream buffering operations
|
|
.TP
|
|
.B setbuffer
|
|
stream buffering operations
|
|
.TP
|
|
.B setlinebuf
|
|
stream buffering operations
|
|
.TP
|
|
.B setvbuf
|
|
stream buffering operations
|
|
.TP
|
|
.B sprintf
|
|
formatted output conversion
|
|
.TP
|
|
.B sscanf
|
|
input format conversion
|
|
.TP
|
|
.B strerror
|
|
system error messages
|
|
.TP
|
|
.B sys_errlist
|
|
system error messages
|
|
.TP
|
|
.B sys_nerr
|
|
system error messages
|
|
.TP
|
|
.B tempnam
|
|
temporary file routines
|
|
.TP
|
|
.B tmpfile
|
|
temporary file routines
|
|
.TP
|
|
.B tmpnam
|
|
temporary file routines
|
|
.TP
|
|
.B ungetc
|
|
un-get character from input stream
|
|
.TP
|
|
.B vfprintf
|
|
formatted output conversion
|
|
.TP
|
|
.B vfscanf
|
|
input format conversion
|
|
.TP
|
|
.B vprintf
|
|
formatted output conversion
|
|
.TP
|
|
.B vscanf
|
|
input format conversion
|
|
.TP
|
|
.B vsprintf
|
|
formatted output conversion
|
|
.TP
|
|
.B vsscanf
|
|
input format conversion
|
|
.SH "CONFORMING TO"
|
|
The
|
|
.B stdio
|
|
library conforms to ANSI X3.159-1989 (``ANSI C'').
|
|
.SH "SEE ALSO"
|
|
.BR close (2),
|
|
.BR open (2),
|
|
.BR read (2),
|
|
.BR write (2),
|
|
.BR stdout (3),
|
|
.BR unlocked_stdio (3)
|