.\" -*- coding: UTF-8 -*- .\" From dholland@burgundy.eecs.harvard.edu Tue Mar 24 18:08:15 1998 .\" .\" This man page was written in 1998 by David A. Holland .\" Polished a bit by aeb. .\" .\" %%%LICENSE_START(PUBLIC_DOMAIN) .\" Placed in the Public Domain. .\" %%%LICENSE_END .\" .\" 2005-06-16 mtk, mentioned freopen() .\" 2007-12-08, mtk, Converted from mdoc to man macros .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH STDIN 3 "15 Septiembre 2017" Linux "Manual del Programador de Linux" .SH NOMBRE stdin, stdout, stderr \- flujos de la E/S estándar .SH SINOPSIS .nf \fB#include \fP .PP \fBextern FILE *\fP\fIstdin\fP\fB;\fP \fBextern FILE *\fP\fIstdout\fP\fB;\fP \fBextern FILE *\fP\fIstderr\fP\fB;\fP .fi .SH DESCRIPCIÓN Bajo condiciones normales cualquier programa UNIX tiene tres flujos de E/S abiertos cuando arranca: uno para la entrada, otro para la salida y otro para imprimir los diagnósticos o mensajes de error. Estos flujos están típicamente ligados al terminal de usuario (ver \fBtty\fP(4)) pero podrían referirse a ficheros o a otros dispositivos, según lo que decida el proceso padre. (Ver también la sección "Redirección" de \fBsh\fP(1).) .PP El flujo de entrada se conoce como "entrada estándar"; el flujo de salida como "salida estándar"; y el flujo de error como "error estándar". Estos términos se abrevian para formar los símbolos utilizados para referirse a esos ficheros, esto es, \fIstdin\fP, \fIstdout\fP y \fIstderr\fP. .PP Cada uno de estos símbolos es una macro de \fBstdio\fP(3) del tipo "puntero a \fIFILE\fP" y pueden ser utilizados por funciones como \fBfprintf\fP(3) o \fBfread\fP(3). .PP Since \fIFILE\fPs are a buffering wrapper around UNIX file descriptors, the same underlying files may also be accessed using the raw UNIX file interface, that is, the functions like \fBread\fP(2) and \fBlseek\fP(2). .PP On program startup, the integer file descriptors associated with the streams \fIstdin\fP, \fIstdout\fP, and \fIstderr\fP are 0, 1, and 2, respectively. The preprocessor symbols \fBSTDIN_FILENO\fP, \fBSTDOUT_FILENO\fP, and \fBSTDERR_FILENO\fP are defined with these values in \fI\fP. (Applying \fBfreopen\fP(3) to one of these streams can change the file descriptor number associated with the stream.) .PP Es necesario tener en cuenta que la mezcla de \fIFILE\fPs y descriptores de fichero crudos puede producir resultados inesperados y se debería evitar. (Para los masoquistas: POSIX.1, section 8.2.3, describe en detalle cómo se supone que funciona esta interacción). Una regla general es que los descriptores de fichero son gestionados por el núcleo, mientras que stdio es una simple biblioteca. Esto significa, por ejemplo, que tras un \fBexec\fP(3), el hijo hereda todos los descriptores de ficheros abiertos, pero los flujos antiguos se hacen inaccesibles. .PP Ya que los símbolos \fIstdin\fP, \fIstdout\fP y \fIstderr\fP son especificados como macros, las asignaciones a ellos no son portables. Se puede hacer que los flujos estándares referencien a otros ficheros con ayuda de la función de biblioteca \fBfreopen\fP(3), introducida especialmente para hacer posible reasignar \fIstdin\fP, \fIstdout\fP y \fIstderr\fP. Los flujos estándares se cierran llamando a \fBexit\fP(3) y por la terminación normal del programa. .SH "CONFORME A" Las macros \fIstdin\fP, \fIstdout\fP y \fIstderr\fP cumplen el C89, y este estándar también estipula que esos tres flujos se deberían abrir al comienzo del programa. .SH NOTAS El flujo \fIstderr\fP no utiliza búffers. El flujo \fIstdout\fP tiene un búffer de líneas cuando apunta a un terminar. Las líneas no aparecen hasta que se llama a \fBfflush\fP(3) o a \fBexit\fP(3), o se imprime una nueva línea ("\en"). Esto puede producir resultados inesperados, especialmente en depuración. El modo "buffer" de los flujos estándares (o de cualquier otro flujo) se puede cambiar con llamadas a \fBsetbuf\fP(3) o \fBsetvbuf\fP(3). Es necesario tener en cuenta que en caso de que \fIstdin\fP esté asociado con un terminal, podría haber también entrada vía buffer en el driver del terminal, sin relación alguna con el búffer de stdio. (De hecho, las entradas normales de terminal utilizan un búffer de líneas en el núcleo). Esta gestión de entradas del núcleo puede ser modificada utilizando llamadas como \fBtcsetattr\fP(3); ver también \fBstty\fP(1) y \fBtermios\fP(3). .SH "VÉASE TAMBIÉN" \fBcsh\fP(1), \fBsh\fP(1), \fBopen\fP(2), \fBfopen\fP(3), \fBstdio\fP(3) .SH COLOFÓN Esta página es parte de la versión 5.10 del proyecto Linux \fIman\-pages\fP. Puede encontrar una descripción del proyecto, información sobre cómo informar errores y la última versión de esta página en \%https://www.kernel.org/doc/man\-pages/. .SH TRADUCCIÓN La traducción al español de esta página del manual fue creada por Carlos Costa Portela y Juan Piernas . Esta traducción es documentación libre; lea la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a .MT debian-l10n-spanish@lists.debian.org>. .ME .