]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man3/stdio.3
getent.1, intro.1, time.1, _exit.2, _syscall.2, accept.2, access.2, acct.2, adjtimex...
[thirdparty/man-pages.git] / man3 / stdio.3
CommitLineData
fea681da
MK
1.\" Copyright (c) 1990, 1991 Regents of the University of California.
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\" notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\" notice, this list of conditions and the following disclaimer in the
11.\" documentation and/or other materials provided with the distribution.
12.\" 3. All advertising materials mentioning features or use of this software
13.\" must display the following acknowledgement:
14.\" This product includes software developed by the University of
15.\" California, Berkeley and its contributors.
16.\" 4. Neither the name of the University nor the names of its contributors
17.\" may be used to endorse or promote products derived from this software
18.\" without specific prior written permission.
19.\"
20.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.\" @(#)stdio.3 6.5 (Berkeley) 5/6/91
33.\"
34.\" Converted for Linux, Mon Nov 29 16:07:22 1993, faith@cs.unc.edu
35.\" Modified, 2001-12-26, aeb
36.\"
37.TH STDIO 3 2001-12-26 "" "Linux Programmer's Manual"
38.SH NAME
39stdio \- standard input/output library functions
40.SH SYNOPSIS
41.B #include <stdio.h>
42.sp
c8ce4bc6 43.BI "FILE *" stdin ;
fea681da 44.br
d9cf37f4 45.BI "FILE *" stdout ;
fea681da 46.br
d9cf37f4 47.BI "FILE *" stderr ;
fea681da
MK
48.SH DESCRIPTION
49The standard I/O library provides a simple and efficient buffered stream
c13182ef
MK
50I/O interface.
51Input and output is mapped into logical data streams and the
52physical I/O characteristics are concealed.
53The functions and macros are
fea681da
MK
54listed below; more information is available from the individual man pages.
55.PP
56A stream is associated with an external file (which may be a physical
57device) by
58.I opening
c13182ef
MK
59a file, which may involve creating a new file.
60Creating an existing file
61causes its former contents to be discarded.
62If a file can support positioning requests (such as a disk file,
63as opposed to a terminal) then a
fea681da
MK
64.I file position indicator
65associated with the stream is positioned at the start of the file (byte
c13182ef
MK
66zero), unless the file is opened with append mode.
67If append mode is used,
fea681da 68it is unspecified whether the position indicator will be placed at the
c13182ef
MK
69start or the end of the file.
70The position indicator is maintained by
71subsequent reads, writes and positioning requests.
72All input occurs as if the characters were read by successive calls to the
fea681da
MK
73.BR fgetc (3)
74function; all output takes place as if all characters were written by
75successive calls to the
76.BR fputc (3)
77function.
78.PP
79A file is disassociated from a stream by
80.I closing
c13182ef
MK
81the file.
82Output streams are flushed (any unwritten buffer contents are
fea681da 83transferred to the host environment) before the stream is disassociated from
c13182ef
MK
84the file.
85The value of a pointer to a
097585ed 86.I FILE
fea681da
MK
87object is indeterminate after a file is closed (garbage).
88.PP
89A file may be subsequently reopened, by the same or another program
90execution, and its contents reclaimed or modified (if it can be
c13182ef
MK
91repositioned at the start).
92If the main function returns to its original
fea681da
MK
93caller, or the
94.BR exit (3)
95function is called, all open files are closed (hence all output streams are
c13182ef
MK
96flushed) before program termination.
97Other methods of program termination,
fea681da
MK
98such as
99.BR abort (3)
100do not bother about closing files properly.
101.PP
102At program startup, three text streams are predefined and need not be
a43aff68 103opened explicitly:
c13182ef 104.I standard input
a43aff68 105(for reading conventional input),
c13182ef 106.I standard output
fea681da
MK
107(for writing conventional input), and
108.I standard error
c13182ef
MK
109(for writing diagnostic output).
110These streams are abbreviated
fea681da
MK
111.IR stdin , stdout
112and
113.IR stderr .
114When opened, the standard error stream is not fully buffered; the standard
115input and output streams are fully buffered if and only if the streams do
29abb77b 116not refer to an interactive device.
fea681da
MK
117.PP
118Output streams that refer to terminal devices are always line buffered by
119default; pending output to such streams is written automatically whenever
c13182ef
MK
120an input stream that refers to a terminal device is read.
121In cases where a
fea681da
MK
122large amount of computation is done after printing part of a line on an
123output terminal, it is necessary to
124.BR fflush (3)
125the standard output before going off and computing so that the output will
126appear.
127.PP
128The
f19a0f03 129.I stdio
fea681da
MK
130library is a part of the library
131.B libc
132and routines are automatically loaded as needed by the compilers
133.BR cc (1)
134and
135.BR pc (1).
136The
3d341b33 137SYNOPSIS
fea681da
MK
138sections of the following manual pages indicate which include files are to
139be used, what the compiler declaration for the function looks like and
140which external variables are of interest.
141.PP
3b777aff 142The following are defined as macros; these names may not be reused without
fea681da
MK
143first removing their current definitions with
144.BR #undef :
145.BR BUFSIZ ,
146.BR EOF ,
147.BR FILENAME_MAX ,
148.BR FOPEN_MAX ,
149.BR L_cuserid ,
150.BR L_ctermid ,
a5e0a0e4 151.BR L_tmpnam ,
fea681da
MK
152.BR NULL ,
153.BR SEEK_END ,
154.BR SEEK_SET ,
24a7082a 155.BR SEEK_CUR ,
fea681da
MK
156.BR TMP_MAX ,
157.BR clearerr ,
158.BR feof ,
159.BR ferror ,
160.BR fileno ,
834fec09
MK
161.\" Not on Linux: .BR fropen ,
162.\" Not on Linux: .BR fwopen ,
fea681da
MK
163.BR getc ,
164.BR getchar ,
165.BR putc ,
166.BR putchar ,
167.BR stderr ,
168.BR stdin ,
169.BR stdout .
170Function versions of the macro functions
171.BR feof ,
172.BR ferror ,
173.BR clearerr ,
174.BR fileno ,
175.BR getc ,
176.BR getchar ,
177.BR putc ,
178and
179.B putchar
180exist and will be used if the macros definitions are explicitly removed.
c634028a 181.SS "List of functions"
9771e6de
MK
182.TS
183;
184lb lb
185lb l.
186Function Description
187_
188clearerr check and reset stream status
189fclose close a stream
190fdopen stream open functions
191feof check and reset stream status
192ferror check and reset stream status
193fflush flush a stream
194fgetc get next character or word from input stream
195fgetpos reposition a stream
196fgets get a line from a stream
197fileno return the integer descriptor of the argument stream
198fopen stream open functions
199fprintf formatted output conversion
200fpurge flush a stream
201fputc output a character or word to a stream
202fputs output a line to a stream
203fread binary stream input/output
204freopen stream open functions
205fscanf input format conversion
206fseek reposition a stream
207fsetpos reposition a stream
208ftell reposition a stream
209fwrite binary stream input/output
210getc get next character or word from input stream
211getchar get next character or word from input stream
212gets get a line from a stream
213getw get next character or word from input stream
214mktemp make temporary filename (unique)
215perror system error messages
216printf formatted output conversion
217putc output a character or word to a stream
218putchar output a character or word to a stream
219puts output a line to a stream
220putw output a character or word to a stream
221remove remove directory entry
222rewind reposition a stream
223scanf input format conversion
224setbuf stream buffering operations
225setbuffer stream buffering operations
226setlinebuf stream buffering operations
227setvbuf stream buffering operations
228sprintf formatted output conversion
229sscanf input format conversion
230strerror system error messages
231sys_errlist system error messages
232sys_nerr system error messages
233tempnam temporary file routines
234tmpfile temporary file routines
235tmpnam temporary file routines
236ungetc un-get character from input stream
237vfprintf formatted output conversion
238vfscanf input format conversion
239vprintf formatted output conversion
240vscanf input format conversion
241vsprintf formatted output conversion
242vsscanf input format conversion
243.TE
47297adb 244.SH CONFORMING TO
fea681da 245The
f19a0f03 246.I stdio
68e1685c 247library conforms to C89.
47297adb 248.SH SEE ALSO
fea681da
MK
249.BR close (2),
250.BR open (2),
251.BR read (2),
252.BR write (2),
a2337ea3
MK
253.BR stdout (3),
254.BR unlocked_stdio (3)