summaryrefslogtreecommitdiff
path: root/static/netbsd/man3/stdio.3
diff options
context:
space:
mode:
Diffstat (limited to 'static/netbsd/man3/stdio.3')
-rw-r--r--static/netbsd/man3/stdio.3347
1 files changed, 347 insertions, 0 deletions
diff --git a/static/netbsd/man3/stdio.3 b/static/netbsd/man3/stdio.3
new file mode 100644
index 00000000..7c206bc7
--- /dev/null
+++ b/static/netbsd/man3/stdio.3
@@ -0,0 +1,347 @@
+.\" $NetBSD: stdio.3,v 1.28 2020/08/29 15:25:57 rillig 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 August 29, 2020
+.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 is placed at 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
+written 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 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 asprintf formatted output conversion with allocation
+.It asprintf_l formatted output conversion with allocation
+.It clearerr check and reset stream status
+.It dprintf formatted output conversion
+.It dprintf_l formatted output conversion
+.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 fmemopen open a stream that points to a memory buffer
+.It fopen stream open functions
+.It fprintf formatted output conversion
+.It fprintf_l 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 fscanf_l input format conversion
+.It fseek reposition a stream
+.It fseeko reposition a stream
+.It fsetpos reposition a stream
+.It ftell reposition a stream
+.It ftello reposition a stream
+.It ftrylockfile lock a stream (non-blocking)
+.It funlockfile unlock a stream
+.It funopen open a stream
+.It funopen2 open a stream, with flush support
+.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 open_memstream open memory as a stream
+.It popen open a program as a stream
+.It popenve open a program as a stream
+.It pclose close an opened program stream
+.It perror system error messages
+.It printf formatted output conversion
+.It printf_l 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 scanf_l 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 snprintf_l formatted output conversion
+.It sprintf formatted output conversion
+.It sscanf input format conversion
+.It sscanf_l 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 vasprintf formatted output conversion with allocation
+.It vasprintf_l formatted output conversion with allocation
+.It vdprintf formatted output conversion
+.It vdprintf_l formatted output conversion
+.It vfprintf formatted output conversion
+.It vfprintf_l formatted output conversion
+.It vfscanf input format conversion
+.It vfscanf_l input format conversion
+.It vprintf formatted output conversion
+.It vprintf_l formatted output conversion
+.It vscanf input format conversion
+.It vscanf_l input format conversion
+.It vsnprintf formatted output conversion
+.It vsnprintf_l formatted output conversion
+.It vsprintf formatted output conversion
+.It vsprintf_l formatted output conversion
+.It vsscanf input format conversion
+.It vsscanf_l 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 .