1 .\" Copyright (c) 1990, 1991 Regents of the University of California.
2 .\" All rights reserved.
4 .\" %%%LICENSE_START(BSD_4_CLAUSE_UCB)
5 .\" Redistribution and use in source and binary forms, with or without
6 .\" modification, are permitted provided that the following conditions
8 .\" 1. Redistributions of source code must retain the above copyright
9 .\" notice, this list of conditions and the following disclaimer.
10 .\" 2. Redistributions in binary form must reproduce the above copyright
11 .\" notice, this list of conditions and the following disclaimer in the
12 .\" documentation and/or other materials provided with the distribution.
13 .\" 3. All advertising materials mentioning features or use of this software
14 .\" must display the following acknowledgement:
15 .\" This product includes software developed by the University of
16 .\" California, Berkeley and its contributors.
17 .\" 4. Neither the name of the University nor the names of its contributors
18 .\" may be used to endorse or promote products derived from this software
19 .\" without specific prior written permission.
21 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 .\" @(#)stdio.3 6.5 (Berkeley) 5/6/91
36 .\" Converted for Linux, Mon Nov 29 16:07:22 1993, faith@cs.unc.edu
37 .\" Modified, 2001-12-26, aeb
39 .TH STDIO 3 2021-03-22 "" "Linux Programmer's Manual"
41 stdio \- standard input/output library functions
51 The standard I/O library provides a simple and efficient buffered stream
53 Input and output is mapped into logical data streams and the
54 physical I/O characteristics are concealed.
55 The functions and macros are
56 listed below; more information is available from the individual man pages.
58 A stream is associated with an external file (which may be a physical
61 a file, which may involve creating a new file.
62 Creating an existing file
63 causes its former contents to be discarded.
64 If a file can support positioning requests (such as a disk file,
65 as opposed to a terminal), then a
66 .I file position indicator
67 associated with the stream is positioned at the start of the file (byte
68 zero), unless the file is opened with append mode.
69 If append mode is used,
70 it is unspecified whether the position indicator will be placed at the
71 start or the end of the file.
72 The position indicator is maintained by
73 subsequent reads, writes, and positioning requests.
74 All input occurs as if the characters were read by successive calls to the
76 function; all output takes place as if all characters were written by
77 successive calls to the
81 A file is disassociated from a stream by
84 Output streams are flushed (any unwritten buffer contents are
85 transferred to the host environment) before the stream is disassociated from
87 The value of a pointer to a
89 object is indeterminate after a file is closed (garbage).
91 A file may be subsequently reopened, by the same or another program
92 execution, and its contents reclaimed or modified (if it can be
93 repositioned at the start).
94 If the main function returns to its original
97 function is called, all open files are closed (hence all output streams are
98 flushed) before program termination.
99 Other methods of program termination,
102 do not bother about closing files properly.
104 At program startup, three text streams are predefined and need not be
107 (for reading conventional input),
109 (for writing conventional output), and
111 (for writing diagnostic output).
112 These streams are abbreviated
117 When opened, the standard error stream is not fully buffered; the standard
118 input and output streams are fully buffered if and only if the streams do
119 not refer to an interactive device.
121 Output streams that refer to terminal devices are always line buffered by
122 default; pending output to such streams is written automatically whenever
123 an input stream that refers to a terminal device is read.
125 large amount of computation is done after printing part of a line on an
126 output terminal, it is necessary to
128 the standard output before going off and computing so that the output will
133 library is a part of the library
135 and routines are automatically loaded as needed by
139 sections of the following manual pages indicate which include files are to
140 be used, what the compiler declaration for the function looks like and
141 which external variables are of interest.
143 The following are defined as macros; these names may not be reused without
144 first removing their current definitions with
162 .\" Not on Linux: .BR fropen ,
163 .\" Not on Linux: .BR fwopen ,
171 Function versions of the macro functions
181 exist and will be used if the macros definitions are explicitly removed.
182 .SS List of functions
192 check and reset stream status
198 stream open functions
201 check and reset stream status
204 check and reset stream status
210 get next character or word from input stream
216 get a line from a stream
219 return the integer descriptor of the argument stream
222 stream open functions
225 formatted output conversion
231 output a character or word to a stream
234 output a line to a stream
237 binary stream input/output
240 stream open functions
243 input format conversion
255 binary stream input/output
258 get next character or word from input stream
261 get next character or word from input stream
264 get a line from a stream
267 get next character or word from input stream
270 make temporary filename (unique)
273 system error messages
276 formatted output conversion
279 output a character or word to a stream
282 output a character or word to a stream
285 output a line to a stream
288 output a character or word to a stream
291 remove directory entry
297 input format conversion
300 stream buffering operations
302 \fBsetbuffer\fP(3) T{
303 stream buffering operations
305 \fBsetlinebuf\fP(3) T{
306 stream buffering operations
309 stream buffering operations
312 formatted output conversion
315 input format conversion
318 system error messages
320 \fBsys_errlist\fP(3) T{
321 system error messages
324 system error messages
327 temporary file routines
330 temporary file routines
333 temporary file routines
336 un-get character from input stream
339 formatted output conversion
342 input format conversion
345 formatted output conversion
348 input format conversion
351 formatted output conversion
354 input format conversion
362 library conforms to C89.
369 .BR unlocked_stdio (3)