1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367
|
.\" Copyright (c) 1990, 1991 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. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. 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 6.5 (Berkeley) 5/6/91
.\"
.\" Converted for Linux, Mon Nov 29 16:07:22 1993, faith@cs.unc.edu
.\" Modified, 2001-12-26, aeb
.\" Translation revised Mon Aug 17 1998 by Juan Piernas <piernas@ditec.um.es>
.\" Traducción revisada por Miguel Pérez Ibars <mpi79470@alu.um.es> el 3-febrero-2005
.\"
.TH STDIO 3 "26 diciembre 2001" "" "Manual del Programador de Linux"
.SH NOMBRE
stdio \- funciones de biblioteca de entrada/salida estándar.
.SH SINOPSIS
.B #include <stdio.h>
.sp
.B FILE *stdin;
.br
.B FILE *stdout;
.br
.B FILE *stderr;
.SH DESCRIPCIÓN
La biblioteca de E/S estándar proporciona una interfaz de flujo (stream)
utilizando un sistema de buffers (memoria intermedia) simple y eficiente. La
entrada y la salida se mapean en flujos lógicos de datos y las
caracteristicas fisicas de E/S permanecen ocultas para el programador. Las
funciones y las macros se muestran mas adelante; para mas información se
puede recurrir a las paginas del manual individuales para cada una de ellas.
.PP
Un flujo se asocia con un archivo externo (el cual debe estar en un
dispositivo físico)
.I abriendo
un archivo, el cual se supone que debe ser creado. Crear un archivo
existente hara que dicho archivo quede vacio. Si un archivo soporta
posicionamiento (como un archivo en disco, y en contraposición a lo que
ocurre con un archivo de terminal) entonces un
.I marcador de posición
asociado al flujo se situará al principio del archivo (byte cero), a
no ser que el archivo sea abierto en modo añadir (append). Si se utiliza
esta última modalidad de apertura, el marcador de posición será situado al
final del archivo. el indicador de posicion se mantiene en sucesivas
lecturas, escrituras y reposicionamientos. Todas las entradas se hacen como
si los caracteres hubieran sido leidos mediante sucesivas llamadas a la
función
.BR fgetc (3)
todas las salidas se producen como si todos los caracteres fueran leidos
mediante llamadas sucesivas a la función
.BR fputc (3)
.PP
Un archivo se desentiende de un flujo
.I cerrando
dicho archivo. Los flujos de salida son descargados (toda el contenido
de la memoria intermedia que no fue escrita al archivo, se transmite en ese
momento) antes de que el flujo se desentienda del fichero. El valor de
un puntero que apunta a un objeto
.B FILE
es indeterminado tras el cierre del archivo.
.PP
Un archivo sera reabierto repitidamente, por la misma u otras ejecuciones de
un programa, y sus contenidos seran leidos o modificados (si se puede
reposicionar al principio). Si la función main() retorna a quien llamo al
programa, o se utiliza la función
.BR exit (3)
todos los archivos abiertos seran cerrados (consecuentemente todos los
flujos de salida serán descargados sobre sus respectivos ficheros) antes
de que se produzca el cierre efectivo del programa.Otras formas de terminar
un programa como
.BR abort (3)
no se preocupan de cerrar los archivos apropiadamente.
.PP
Cuando el programa comienza, tres flujos de texto se inician por defecto
y no necesitan ser abiertas explicitamente \(em
.I entrada estándar
(para la lectura de la entrada convencional), \(em
.I salida estándar
(para la escritura de la salida convencional) \(em
.I salida de error estándar
(para la salida de diagnósticos). Estos flujos se abrevian,
respectivamente, como
.IR stdin , stdout
y
.IR stderr .
Una vez abierta, el flujo de errores estándar no utiliza memoria
intermedia totalmente; los flujos estándar de entrada y salida lo harán
solamente en el caso de que dichos flujos no hagan referencia a un
dispositivo interactivo.
.PP
Los flujos de salida que hacen referencia a dispositivos de tipo
terminal, siempre utilizan memorias intermedias lineales por defecto;
durante la salida hacia cada flujo se escribe automáticamente un
flujo de entrada que hace referencia al dispositivo terminal que lee. En
los casos donde se requieren una enorme cantidad de calculos, despues de
imprimir parte de una linea en un terminal de salida, es necesario efectuar
una descarga de la memoria intermedia en el flujo de salida estándar
mediante
.BR fflush (3)
antes de dejarlo y comenzar los calculos para que la salida aparezca.
.PP
La biblioteca
.B stdio
es parte de la biblioteca
.B libc
y las rutinas se cargan automaticamente segun son necesitadas por los
compiladores
.BR cc (1)
y
.BR pc (1).
Las secciones
.B SINOPSIS
de las siguientes paginas del manual indican que archivos de cabecera
(include) deben ser utilizados, en forma de la declaración de la función y
mostrando que variables externas resultan de interes.
.PP
Las siguientes están definidas como macros; estos nombres no deben ser
reutilizados sin eliminar primero sus definiciones actuales mediante
.BR #undef :
.BR BUFSIZ ,
.BR EOF ,
.BR FILENAME_MAX ,
.BR FOPEN_MAX ,
.BR L_cuserid ,
.BR L_ctermid ,
.BR L_tmpnam,
.BR NULL ,
.BR SEEK_END ,
.BR SEEK_SET ,
.BR SEE_CUR ,
.BR TMP_MAX ,
.BR clearerr ,
.BR feof ,
.BR ferror ,
.BR fileno ,
.BR fropen ,
.BR fwopen ,
.BR getc ,
.BR getchar ,
.BR putc ,
.BR putchar ,
.BR stderr ,
.BR stdin ,
.BR stdout .
Existén versiones como función de las macros
.BR feof ,
.BR ferror ,
.BR clearerr ,
.BR fileno ,
.BR getc ,
.BR getchar ,
.BR putc ,
y
.B putchar
y serán utilizadas si las definiciones de las macros han sido eliminadas
explicitamente.
.SH "LISTA DE FUNCIONES"
.TP 10n
.B Función
.B Descripción
.TP
.B clearerr
comprueba y reinicia el estado del flujo
.TP
.B fclose
cierra un flujo
.TP
.B fdopen
funciones de apertura de flujo
.TP
.B feof
comprueba y reinicia el estado del flujo
.TP
.B ferror
comprueba y reinicia el estado del flujo
.TP
.B fflush
descarga la memoria intermedia del flujo sobre el fichero
.TP
.B fgetc
recoge el próximo caracter de un flujo de entrada
.\" .TP
.\" fgetline
.\" recoge una línea de una corriente de entrada
.TP
.B fgetpos
reposición en un flujo
.TP
.B fgets
recoge una linea de un flujo de entrada
.TP
.B fileno
comprueba y reinicia el estado del flujo
.TP
.B fopen
funciones de apertura de flujo
.TP
.B fprintf
conversión para salida formateada.
.TP
.B fpurge
descarga el buffer de un flujo sobre el fichero
.TP
.B fputc
envia un caracter o una palabra a un flujo
.TP
.B fputs
envia una línea a un flujo
.TP
.B fread
entrada/salida binaria
.TP
.B freopen
funciones de apertura de flujo
.TP
.B fropen
abre un flujo
.TP
.B fscanf
conversión para entrada con formato
.TP
.B fseek
reposiciona un flujo
.TP
.B fsetpos
reposiciona un flujo
.TP
.B ftell
reposiciona un flujo
.TP
.B fwrite
entrada/salida binaria
.TP
.B getc
recoge el próximo carácter o palabra de un flujo de entrada
.TP
.B getchar
recoge el próximo caracter o palabra de un flujo de entrada
.TP
.B gets
recoge una línea de un flujo
.TP
.B getw
recoge el próximo caracter o palabra de un flujo de entrada
.TP
.B mktemp
crea un nombre de archivo temporal (único)
.TP
.B perror
mensajes de error del sistema
.TP
.B printf
conversión para salida formateada
.TP
.B putc
envia un carácter o palabra a un flujo
.TP
.B putchar
envía un carácter o palabra a un flujo
.TP
.B puts
envía una línea a un flujo
.TP
.B putw
envía un carácter o palabra a un flujo
.TP
.B remove
elimina una entrada de directorio
.TP
.B rewind
reposiciona un flujo
.TP
.B scanf
conversión para entrada formateada
.TP
.B setbuf
operaciones de flujo con memoria intermedia
.TP
.B setbuffer
operaciones de flujo con memoria intermedia
.TP
.B setlinebuf
operaciones de flujo con memoria intermedia
.TP
.B setvbuf
operaciones de flujo con memoria intermedia
.TP
.B sprintf
conversión para salida formateada
.TP
.B sscanf
conversión para entrada formateada
.TP
.B strerror
mensajes de error del sistema
.TP
.B sys_errlist
mensajes de error del sistema
.TP
.B sys_nerr
mensajes de error del sistema
.TP
.B tempnam
rutinas para archivado temporal
.TP
.B tmpfile
rutinas para archivado temporal
.TP
.B tmpnam
rutinas para archivado temporal
.TP
.B ungetc
ignora un carácter de un flujo de entrada
.TP
.B vfprintf
conversión para salida formateada
.TP
.B vfscanf
conversión para entrada formateada
.TP
.B vprintf
conversión para salida formateada
.TP
.B vscanf
conversión para entrada formateada
.TP
.B vsprintf
conversión para salida formateada
.TP
.B vsscanf
conversión para entrada formateada
.SH "CONFORME A"
La biblioteca
.B stdio
es conforme con ANSI X3.159-1989 (``ANSI C'').
.SH "VÉASE TAMBIÉN"
.BR open (2),
.BR close (2),
.BR read (2),
.BR write (2),
.BR stdout (3)
|