summaryrefslogtreecommitdiff
path: root/static/openbsd/man3/stdio.3
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:54:44 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:54:44 -0400
commita9157ce950dfe2fc30795d43b9d79b9d1bffc48b (patch)
tree9df484304b560466d145e662c1c254ff0e9ae0ba /static/openbsd/man3/stdio.3
parent160aa82b2d39c46ad33723d7d909cb4972efbb03 (diff)
docs: Added All OpenBSD Manuals
Diffstat (limited to 'static/openbsd/man3/stdio.3')
-rw-r--r--static/openbsd/man3/stdio.3308
1 files changed, 308 insertions, 0 deletions
diff --git a/static/openbsd/man3/stdio.3 b/static/openbsd/man3/stdio.3
new file mode 100644
index 00000000..4b2555de
--- /dev/null
+++ b/static/openbsd/man3/stdio.3
@@ -0,0 +1,308 @@
+.\" $OpenBSD: stdio.3,v 1.31 2014/07/03 06:08:06 jmc 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.
+.\"
+.Dd $Mdocdate: July 3 2014 $
+.Dt STDIO 3
+.Os
+.Sh NAME
+.Nm stdio
+.Nd standard input/output library functions
+.Sh SYNOPSIS
+.In stdio.h
+.Pp
+.Fd FILE *stdin;
+.Fd FILE *stdout;
+.Fd 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
+.Dq 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
+.Dq 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 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
+.Dq closing
+it.
+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 (garbage) after a file is closed.
+.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 may not close files properly and hence
+buffered output may be lost.
+In particular,
+.Xr _exit 2
+does not flush
+.Nm
+files.
+Neither does an exit due to a signal.
+Buffers are flushed by
+.Xr abort 3 ,
+as required by POSIX, although in previous implementations they were not.
+.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:
+.Pp
+.Bl -bullet -compact -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 .
+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 so that the output will appear immediately.
+Alternatively, these defaults may be modified via the
+.Xr setvbuf 3
+function.
+.Pp
+The
+.Nm stdio
+library is a part of the library libc
+and routines are automatically loaded as needed by the compiler.
+The 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
+.Dv #undef :
+.Dv BUFSIZ ,
+.Dv EOF ,
+.Dv FILENAME_MAX ,
+.Dv FOPEN_MAX ,
+.Dv L_ctermid ,
+.Dv L_tmpnam ,
+.Dv NULL ,
+.Dv SEEK_END ,
+.Dv SEEK_SET ,
+.Dv SEEK_CUR ,
+.Dv TMP_MAX ,
+.Dv clearerr ,
+.Dv feof ,
+.Dv ferror ,
+.Dv fileno ,
+.Dv freopen ,
+.Dv fwopen ,
+.Dv getc ,
+.Dv getchar ,
+.Dv putc ,
+.Dv putchar ,
+.Dv stderr ,
+.Dv stdin ,
+.Dv stdout .
+Function versions of the macro functions
+.Xr feof 3 ,
+.Xr ferror 3 ,
+.Xr clearerr 3 ,
+.Xr fileno 3 ,
+.Xr getc 3 ,
+.Xr getchar 3 ,
+.Xr putc 3 ,
+and
+.Xr putchar 3
+exist and will be used if the macro
+definitions are explicitly removed.
+.Sh LIST OF FUNCTIONS
+.Bl -column "sys_errlist" "Description"
+.It Sy Function Ta Sy Description
+.It asprintf Ta "formatted output conversion with allocation"
+.It clearerr Ta "check and reset stream status"
+.It dprintf Ta "formatted output conversion"
+.It fclose Ta "close a stream"
+.It fdopen Ta "stream open functions"
+.It feof Ta "check and reset stream status"
+.It ferror Ta "check and reset stream status"
+.It fflush Ta "flush a stream"
+.It fgetc Ta "get next character or word from input stream"
+.It fgetln Ta "get a line from a stream"
+.It fgetpos Ta "reposition a stream"
+.It fgets Ta "get a line from a stream"
+.It fgetwc Ta "get next wide character from input stream"
+.It fgetws Ta "get a line of wide characters from a stream"
+.It fileno Ta "get a stream's underlying file descriptor"
+.It fopen Ta "stream open functions"
+.It fprintf Ta "formatted output conversion"
+.It fpurge Ta "flush a stream"
+.It fputc Ta "output a character or word to a stream"
+.It fputs Ta "output a line to a stream"
+.It fputwc Ta "output a wide character to a stream"
+.It fputws Ta "output a line of wide characters to a stream"
+.It fread Ta "binary stream input/output"
+.It freopen Ta "stream open functions"
+.It fropen Ta "open a stream"
+.It fscanf Ta "input format conversion"
+.It fseek Ta "reposition a stream"
+.It fsetpos Ta "reposition a stream"
+.It ftell Ta "reposition a stream"
+.It funopen Ta "open a stream"
+.It fwide Ta "set/get orientation of stream"
+.It fwopen Ta "open a stream"
+.It fwprintf Ta "formatted wide character output conversion"
+.It fwrite Ta "binary stream input/output"
+.It getc Ta "get next character or word from input stream"
+.It getchar Ta "get next character or word from input stream"
+.It getdelim Ta "read a delimited record from a stream"
+.It getline Ta "read a delimited record from a stream"
+.It getw Ta "get next character or word from input stream"
+.It getwc Ta "get next wide character from input stream"
+.It getwchar Ta "get next wide character from input stream"
+.It mkdtemp Ta "create unique temporary directory"
+.It mkstemp Ta "create unique temporary file"
+.It mktemp Ta "create unique temporary file"
+.It perror Ta "system error messages"
+.It printf Ta "formatted output conversion"
+.It putc Ta "output a character or word to a stream"
+.It putchar Ta "output a character or word to a stream"
+.It puts Ta "output a line to a stream"
+.It putw Ta "output a character or word to a stream"
+.It putwc Ta "output a wide character to a stream"
+.It putwchar Ta "output a wide character to a stream"
+.It remove Ta "remove directory entry"
+.It rewind Ta "reposition a stream"
+.It scanf Ta "input format conversion"
+.It setbuf Ta "stream buffering operations"
+.It setbuffer Ta "stream buffering operations"
+.It setlinebuf Ta "stream buffering operations"
+.It setvbuf Ta "stream buffering operations"
+.It snprintf Ta "formatted output conversion"
+.It sprintf Ta "formatted output conversion"
+.It sscanf Ta "input format conversion"
+.It strerror Ta "system error messages"
+.It swprintf Ta "formatted wide character output conversion"
+.It sys_errlist Ta "system error messages"
+.It sys_nerr Ta "system error messages"
+.It tempnam Ta "temporary file routines"
+.It tmpfile Ta "temporary file routines"
+.It tmpnam Ta "temporary file routines"
+.It ungetc Ta "un-get character from input stream"
+.It ungetwc Ta "un-get wide character from input stream"
+.It vasprintf Ta "formatted output conversion with allocation"
+.It vdprintf Ta "formatted output conversion"
+.It vfprintf Ta "formatted output conversion"
+.It vfscanf Ta "input format conversion"
+.It vfwprintf Ta "formatted wide character output conversion"
+.It vprintf Ta "formatted output conversion"
+.It vscanf Ta "input format conversion"
+.It vsnprintf Ta "formatted output conversion"
+.It vsprintf Ta "formatted output conversion"
+.It vsscanf Ta "input format conversion"
+.It vswprintf Ta "formatted wide character output conversion"
+.It vwprintf Ta "formatted wide character output conversion"
+.It wprintf Ta "formatted wide character output conversion"
+.El
+.Sh SEE ALSO
+.Xr close 2 ,
+.Xr open 2 ,
+.Xr read 2 ,
+.Xr write 2
+.Sh STANDARDS
+The
+.Nm stdio
+library conforms to
+.St -isoC-99 .
+.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 .