diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:54:44 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:54:44 -0400 |
| commit | a9157ce950dfe2fc30795d43b9d79b9d1bffc48b (patch) | |
| tree | 9df484304b560466d145e662c1c254ff0e9ae0ba /static/openbsd/man3/stdio.3 | |
| parent | 160aa82b2d39c46ad33723d7d909cb4972efbb03 (diff) | |
docs: Added All OpenBSD Manuals
Diffstat (limited to 'static/openbsd/man3/stdio.3')
| -rw-r--r-- | static/openbsd/man3/stdio.3 | 308 |
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 . |
