1# 2#Copyright (c) 1990 The Regents of the University of California. 3#All rights reserved. 4# 5#Redistribution and use in source and binary forms are permitted 6#provided that the above copyright notice and this paragraph are 7#duplicated in all such forms and that any documentation, 8#and/or other materials related to such 9#distribution and use acknowledge that the software was developed 10#by the University of California, Berkeley. The name of the 11#University may not be used to endorse or promote products derived 12#from this software without specific prior written permission. 13#THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 14#IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 15#WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 16# 17@node Stdio 18@chapter Input and Output (@file{stdio.h}) 19 20This chapter comprises functions to manage files 21or other input/output streams. Among these functions are subroutines 22to generate or scan strings according to specifications from a format string. 23 24The underlying facilities for input and output depend on the host 25system, but these functions provide a uniform interface. 26 27The corresponding declarations are in @file{stdio.h}. 28 29The reentrant versions of these functions use macros 30 31@example 32_stdin_r(@var{reent}) 33_stdout_r(@var{reent}) 34_stderr_r(@var{reent}) 35@end example 36 37@noindent 38instead of the globals @code{stdin}, @code{stdout}, and 39@code{stderr}. The argument @var{reent} is a pointer to a reentrancy 40structure. 41 42@menu 43* Function clearerr:: Clear file or stream error indicator 44* Function diprintf:: Print to a file descriptor (integer only) 45* Function dprintf:: Print to a file descriptor 46* Function fclose:: Close a file 47* Function fcloseall:: Close all files 48* Function fdopen:: Turn an open file into a stream 49* Function feof:: Test for end of file 50* Function ferror:: Test whether read/write error has occurred 51* Function fflush:: Flush buffered file output 52* Function fgetc:: Get a character from a file or stream 53* Function fgetpos:: Record position in a stream or file 54* Function fgets:: Get character string from a file or stream 55* Function fgetwc:: Get a wide character from a file or stream 56* Function fgetws:: Get a wide character string from a file or stream 57* Function fileno:: Get file descriptor associated with stream 58* Function fmemopen:: Open a stream around a fixed-length buffer 59* Function fopen:: Open a file 60* Function fopencookie:: Open a stream with custom callbacks 61* Function fpurge:: Discard all pending I/O on a stream 62* Function fputc:: Write a character on a stream or file 63* Function fputs:: Write a character string in a file or stream 64* Function fputwc:: Write a wide character to a file or stream 65* Function fputws:: Write a wide character string to a file or stream 66* Function fread:: Read array elements from a file 67* Function freopen:: Open a file using an existing file descriptor 68* Function fseek:: Set file position 69* Function __fsetlocking:: Set or query locking mode on FILE stream 70* Function fsetpos:: Restore position of a stream or file 71* Function ftell:: Return position in a stream or file 72* Function funopen:: Open a stream with custom callbacks 73* Function fwide:: Set and determine the orientation of a FILE stream 74* Function fwrite:: Write array elements from memory to a file or stream 75* Function getc:: Get a character from a file or stream (macro) 76* Function getc_unlocked:: Get a character from a file or stream (macro) 77* Function getchar:: Get a character from standard input (macro) 78* Function getchar_unlocked:: Get a character from standard input (macro) 79* Function getdelim:: Get character string from a file or stream 80* Function getline:: Get character string from a file or stream 81* Function gets:: Get character string from standard input (obsolete) 82* Function getw:: Get a word (int) from a file or stream 83* Function getwchar:: Get a wide character from standard input 84* Function mktemp:: Generate unused file name 85* Function open_memstream:: Open a write stream around an arbitrary-length buffer 86* Function perror:: Print an error message on standard error 87* Function putc:: Write a character on a stream or file (macro) 88* Function putc_unlocked:: Write a character on a stream or file (macro) 89* Function putchar:: Write a character on standard output (macro) 90* Function putchar_unlocked:: Write a character on standard output (macro) 91* Function puts:: Write a character string on standard output 92* Function putw:: Write a word (int) to a file or stream 93* Function putwchar:: Write a wide character to standard output 94* Function remove:: Delete a file's name 95* Function rename:: Rename a file 96* Function rewind:: Reinitialize a file or stream 97* Function setbuf:: Specify full buffering for a file or stream 98* Function setbuffer:: Specify full buffering for a file or stream with size 99* Function setlinebuf:: Specify line buffering for a file or stream 100* Function setvbuf:: Specify buffering for a file or stream 101* Function siprintf:: Write formatted output (integer only) 102* Function siscanf:: Scan and format input (integer only) 103* Function sprintf:: Write formatted output 104* Function sscanf:: Scan and format input 105* Function stdio_ext:: Access internals of FILE structure 106* Function swprintf:: Write formatted wide character output 107* Function swscanf:: Scan and format wide character input 108* Function tmpfile:: Create a temporary file 109* Function tmpnam:: Generate name for a temporary file 110* Function ungetc:: Push data back into a stream 111* Function ungetwc:: Push wide character data back into a stream 112* Function vfprintf:: Format variable argument list 113* Function vfscanf:: Scan variable argument list 114* Function vfwprintf:: Format variable wide character argument list 115* Function vfwscanf:: Scan and format argument list from wide character input 116* Function viprintf:: Format variable argument list (integer only) 117* Function viscanf:: Scan variable format list (integer only) 118@end menu 119 120@page 121@include stdio/clearerr.def 122 123@page 124@include stdio/diprintf.def 125 126@page 127@include stdio/dprintf.def 128 129@page 130@include stdio/fclose.def 131 132@page 133@include stdio/fcloseall.def 134 135@page 136@include stdio/fdopen.def 137 138@page 139@include stdio/feof.def 140 141@page 142@include stdio/ferror.def 143 144@page 145@include stdio/fflush.def 146 147@page 148@include stdio/fgetc.def 149 150@page 151@include stdio/fgetpos.def 152 153@page 154@include stdio/fgets.def 155 156@page 157@include stdio/fgetwc.def 158 159@page 160@include stdio/fgetws.def 161 162@page 163@include stdio/fileno.def 164 165@page 166@include stdio/fmemopen.def 167 168@page 169@include stdio/fopen.def 170 171@page 172@include stdio/fopencookie.def 173 174@page 175@include stdio/fpurge.def 176 177@page 178@include stdio/fputc.def 179 180@page 181@include stdio/fputs.def 182 183@page 184@include stdio/fputwc.def 185 186@page 187@include stdio/fputws.def 188 189@page 190@include stdio/fread.def 191 192@page 193@include stdio/freopen.def 194 195@page 196@include stdio/fseek.def 197 198@page 199@include stdio/fsetlocking.def 200 201@page 202@include stdio/fsetpos.def 203 204@page 205@include stdio/ftell.def 206 207@page 208@include stdio/funopen.def 209 210@page 211@include stdio/fwide.def 212 213@page 214@include stdio/fwrite.def 215 216@page 217@include stdio/getc.def 218 219@page 220@include stdio/getc_u.def 221 222@page 223@include stdio/getchar.def 224 225@page 226@include stdio/getchar_u.def 227 228@page 229@include stdio/getdelim.def 230 231@page 232@include stdio/getline.def 233 234@page 235@include stdio/gets.def 236 237@page 238@include stdio/getw.def 239 240@page 241@include stdio/getwchar.def 242 243@page 244@include stdio/mktemp.def 245 246@page 247@include stdio/open_memstream.def 248 249@page 250@include stdio/perror.def 251 252@page 253@include stdio/putc.def 254 255@page 256@include stdio/putc_u.def 257 258@page 259@include stdio/putchar.def 260 261@page 262@include stdio/putchar_u.def 263 264@page 265@include stdio/puts.def 266 267@page 268@include stdio/putw.def 269 270@page 271@include stdio/putwchar.def 272 273@page 274@include stdio/remove.def 275 276@page 277@include stdio/rename.def 278 279@page 280@include stdio/rewind.def 281 282@page 283@include stdio/setbuf.def 284 285@page 286@include stdio/setbuffer.def 287 288@page 289@include stdio/setlinebuf.def 290 291@page 292@include stdio/setvbuf.def 293 294@page 295@include stdio/siprintf.def 296 297@page 298@include stdio/siscanf.def 299 300@page 301@include stdio/sprintf.def 302 303@page 304@include stdio/sscanf.def 305 306@page 307@include stdio/stdio_ext.def 308 309@page 310@include stdio/swprintf.def 311 312@page 313@include stdio/swscanf.def 314 315@page 316@include stdio/tmpfile.def 317 318@page 319@include stdio/tmpnam.def 320 321@page 322@include stdio/ungetc.def 323 324@page 325@include stdio/ungetwc.def 326 327@page 328@include stdio/vfprintf.def 329 330@page 331@include stdio/vfscanf.def 332 333@page 334@include stdio/vfwprintf.def 335 336@page 337@include stdio/vfwscanf.def 338 339@page 340@include stdio/viprintf.def 341 342@page 343@include stdio/viscanf.def 344