 b6cbf7203b
			
		
	
	
		b6cbf7203b
		
	
	
	
	
		
			
			This patch imports the unmodified current version of NetBSD libc. The NetBSD includes are in /nbsd_include, while the libc code itself is split between lib/nbsd_libc and common/lib/libc.
		
			
				
	
	
		
			321 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			321 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\"	$NetBSD: stdio.3,v 1.24 2010/05/05 04:13:16 jruoho Exp $
 | |
| .\"
 | |
| .\" Copyright (c) 1990, 1991, 1993
 | |
| .\"	The 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. 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	8.7 (Berkeley) 4/19/94
 | |
| .\"
 | |
| .Dd May 5, 2010
 | |
| .Dt STDIO 3
 | |
| .Os
 | |
| .Sh NAME
 | |
| .Nm stdio
 | |
| .Nd standard input/output library functions
 | |
| .Sh LIBRARY
 | |
| .Lb libc
 | |
| .Sh SYNOPSIS
 | |
| .In stdio.h
 | |
| .Vt FILE *stdin;
 | |
| .Vt FILE *stdout;
 | |
| .Vt FILE *stderr;
 | |
| .Sh DESCRIPTION
 | |
| The standard
 | |
| .Tn I/O
 | |
| library provides a simple and efficient buffered stream
 | |
| .Tn I/O
 | |
| interface.
 | |
| Input and output is mapped into logical data streams
 | |
| and the physical
 | |
| .Tn I/O
 | |
| characteristics are concealed.
 | |
| .Pp
 | |
| A stream is associated with an external file (which may be a physical
 | |
| device) by
 | |
| .Em 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
 | |
| .Em 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, the position indicator will be placed the end-of-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
 | |
| .Xr fgetc 3
 | |
| function; all output takes place as if all characters were
 | |
| read by successive calls to the
 | |
| .Xr fputc 3
 | |
| function.
 | |
| .Pp
 | |
| A file is disassociated from a stream by
 | |
| .Em 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
 | |
| .Dv 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
 | |
| .Xr 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
 | |
| .Xr abort 3
 | |
| do not bother about closing files properly.
 | |
| .Pp
 | |
| This implementation needs and makes
 | |
| no distinction between
 | |
| .Dq text
 | |
| and
 | |
| .Dq binary
 | |
| streams.
 | |
| In effect, all streams are binary.
 | |
| No translation is performed and no extra padding appears on any stream.
 | |
| .Pp
 | |
| At program startup, three streams are predefined and need not be
 | |
| opened explicitly:
 | |
| .Bl -enum -offset indent
 | |
| .It
 | |
| .Em standard input
 | |
| for reading conventional input,
 | |
| .It
 | |
| .Em standard output
 | |
| for writing conventional output, and
 | |
| .It
 | |
| .Em standard error
 | |
| for writing diagnostic output.
 | |
| .El
 | |
| .Pp
 | |
| These streams are abbreviated
 | |
| .Em stdin ,
 | |
| .Em stdout ,
 | |
| and
 | |
| .Em stderr .
 | |
| .Pp
 | |
| Initially, the standard error stream
 | |
| is unbuffered; the standard input and output streams are
 | |
| fully buffered if and only if the streams do not refer to
 | |
| an interactive or
 | |
| .Dq terminal
 | |
| device, as determined by the
 | |
| .Xr isatty 3
 | |
| function.
 | |
| In fact,
 | |
| .Em all
 | |
| freshly-opened streams that refer to terminal devices
 | |
| default to line buffering, and
 | |
| pending output to such streams is written automatically
 | |
| whenever an such an input stream is read.
 | |
| Note that this applies only to
 | |
| .Dq "true reads" ;
 | |
| if the read request can be satisfied by existing buffered data,
 | |
| no automatic flush will occur.
 | |
| In these cases,
 | |
| or when a large amount of computation is done after printing
 | |
| part of a line on an output terminal, it is necessary to
 | |
| .Xr fflush 3
 | |
| the standard output before going off and computing so that the output
 | |
| will appear.
 | |
| Alternatively, these defaults may be modified via the
 | |
| .Xr setvbuf 3
 | |
| function.
 | |
| .Sh IMPLEMENTATION NOTES
 | |
| In multi-threaded applications, operations on streams perform implicit
 | |
| locking, except for the
 | |
| .Fn getc_unlocked ,
 | |
| .Fn getchar_unlocked ,
 | |
| .Fn putc_unlocked ,
 | |
| and
 | |
| .Fn putchar_unlocked
 | |
| functions.
 | |
| Explicit control of stream locking is available through the
 | |
| .Fn flockfile ,
 | |
| .Fn ftrylockfile ,
 | |
| and
 | |
| .Fn funlockfile
 | |
| functions .
 | |
| .Pp
 | |
| The following are defined as macros; these names may not be re-used
 | |
| without first removing their current definitions with
 | |
| .Dv #undef :
 | |
| .Dv BUFSIZ ,
 | |
| .Dv EOF ,
 | |
| .Dv FILENAME_MAX ,
 | |
| .Dv FOPEN_MAX ,
 | |
| .Dv L_cuserid ,
 | |
| .Dv L_ctermid ,
 | |
| .Dv L_tmpnam ,
 | |
| .Dv NULL ,
 | |
| .Dv SEEK_END ,
 | |
| .Dv SEEK_SET ,
 | |
| .Dv SEE_CUR ,
 | |
| .Dv TMP_MAX ,
 | |
| .Fn clearerr ,
 | |
| .Fn feof ,
 | |
| .Fn ferror ,
 | |
| .Fn fileno ,
 | |
| .Fn freopen ,
 | |
| .Fn fwopen ,
 | |
| .Fn getc ,
 | |
| .Fn getc_unlocked ,
 | |
| .Fn getchar ,
 | |
| .Fn getchar_unlocked ,
 | |
| .Fn putc ,
 | |
| .Fn putc_unlocked ,
 | |
| .Fn putchar ,
 | |
| .Fn putchar_unlocked ,
 | |
| .Dv stderr ,
 | |
| .Dv stdin ,
 | |
| .Dv stdout .
 | |
| .Pp
 | |
| Function versions of the macro functions
 | |
| .Fn feof ,
 | |
| .Fn ferror ,
 | |
| .Fn clearerr ,
 | |
| .Fn fileno ,
 | |
| .Fn getc ,
 | |
| .Fn getc_unlocked ,
 | |
| .Fn getchar ,
 | |
| .Fn getchar_unlocked ,
 | |
| .Fn putc ,
 | |
| .Fn putc_unlocked ,
 | |
| .Fn putchar ,
 | |
| and
 | |
| .Fn putchar_unlocked
 | |
| exist and will be used if the macros definitions are explicitly removed.
 | |
| .Sh SEE ALSO
 | |
| .Xr close 2 ,
 | |
| .Xr open 2 ,
 | |
| .Xr read 2 ,
 | |
| .Xr write 2
 | |
| .Sh STANDARDS
 | |
| The
 | |
| .Nm
 | |
| library conforms to
 | |
| .St -ansiC .
 | |
| .Sh LIST OF FUNCTIONS
 | |
| .Bl -column "putchar_unlocked" "Description"
 | |
| .It Sy Function	Description
 | |
| .It clearerr	check and reset stream status
 | |
| .It fclose	close a stream
 | |
| .It fdopen	stream open functions
 | |
| .It feof	check and reset stream status
 | |
| .It ferror	check and reset stream status
 | |
| .It fflush	flush a stream
 | |
| .It fgetc	get next character or word from input stream
 | |
| .It fgetln	get a line from a stream
 | |
| .It fgetpos	reposition a stream
 | |
| .It fgets	get a line from a stream
 | |
| .It fgetwc	get next wide character from input stream
 | |
| .It fileno	check and reset stream status
 | |
| .It flockfile	lock a stream
 | |
| .It fopen	stream open functions
 | |
| .It fprintf	formatted output conversion
 | |
| .It fpurge	flush a stream
 | |
| .It fputc	output a character or word to a stream
 | |
| .It fputs	output a line to a stream
 | |
| .It fputwc	output a wide character to a stream
 | |
| .It fread	binary stream input/output
 | |
| .It freopen	stream open functions
 | |
| .It fropen	open a stream
 | |
| .It fscanf	input format conversion
 | |
| .It fseek	reposition a stream
 | |
| .It fsetpos	reposition a stream
 | |
| .It ftell	reposition a stream
 | |
| .It ftrylockfile	lock a stream (non-blocking)
 | |
| .It funlockfile	unlock a stream
 | |
| .It funopen	open a stream
 | |
| .It fwide	set/get orientation of a stream
 | |
| .It fwopen	open a stream
 | |
| .It fwrite	binary stream input/output
 | |
| .It getc	get next character or word from input stream
 | |
| .It getc_unlocked	get next character or word from input stream
 | |
| .It             Ta (no implicit locking)
 | |
| .It getchar	get next character or word from input stream
 | |
| .It getchar_unlocked	get next character or word from input stream
 | |
| .It             Ta (no implicit locking)
 | |
| .It getdelim	get a delimited record from a stream
 | |
| .It getline	get a line from a stream
 | |
| .It gets	get a line from a stream
 | |
| .It getw	get next character or word from input stream
 | |
| .It getwc	get next wide character from input stream
 | |
| .It getwchar	get next wide character from input stream
 | |
| .It mkstemp	create unique temporary file
 | |
| .It mktemp	create unique temporary file
 | |
| .It perror	system error messages
 | |
| .It printf	formatted output conversion
 | |
| .It putc	output a character or word to a stream
 | |
| .It putc_unlocked	output a character or word to a stream
 | |
| .It             Ta (no implicit locking)
 | |
| .It putchar	output a character or word to a stream
 | |
| .It putchar_unlocked	output a character or word to a stream
 | |
| .It             Ta (no implicit locking)
 | |
| .It puts	output a line to a stream
 | |
| .It putw	output a character or word to a stream
 | |
| .It putwc	output a wide character to a stream
 | |
| .It putwchar	output a wide character to a stream
 | |
| .It remove	remove directory entry
 | |
| .It rewind	reposition a stream
 | |
| .It scanf	input format conversion
 | |
| .It setbuf	stream buffering operations
 | |
| .It setbuffer	stream buffering operations
 | |
| .It setlinebuf	stream buffering operations
 | |
| .It setvbuf	stream buffering operations
 | |
| .It snprintf	formatted output conversion
 | |
| .It sprintf	formatted output conversion
 | |
| .It sscanf	input format conversion
 | |
| .It strerror	system error messages
 | |
| .It sys_errlist	system error messages
 | |
| .It sys_nerr	system error messages
 | |
| .It tempnam	temporary file routines
 | |
| .It tmpfile	temporary file routines
 | |
| .It tmpnam	temporary file routines
 | |
| .It ungetc	un-get character from input stream
 | |
| .It ungetwc	un-get wide character from input stream
 | |
| .It vfprintf	formatted output conversion
 | |
| .It vfscanf	input format conversion
 | |
| .It vprintf	formatted output conversion
 | |
| .It vscanf	input format conversion
 | |
| .It vsnprintf	formatted output conversion
 | |
| .It vsprintf	formatted output conversion
 | |
| .It vsscanf	input format conversion
 | |
| .El
 | |
| .Sh BUGS
 | |
| The standard buffered functions do not interact well with certain other
 | |
| library and system functions, especially
 | |
| .Xr vfork 2
 | |
| and
 | |
| .Xr abort 3 .
 |