oracular (3) stdin.3.gz

Provided by: manpages-es-dev_4.23.1-1_all bug

NOMBRE

       stdin, stdout, stderr - flujos de la E/S estándar

BIBLIOTECA

       Biblioteca Estándar C (libc, -lc)

SINOPSIS

       #include <stdio.h>

       extern FILE *stdin;
       extern FILE *stdout;
       extern FILE *stderr;

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 tty(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
       sh(1).)

       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, stdin, stdout y stderr.

       Cada uno de estos símbolos es una macro de stdio(3) del tipo "puntero a FILE" y pueden ser utilizados por
       funciones como fprintf(3) o fread(3).

       Since FILEs 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 read(2)  and lseek(2).

       On  program  startup,  the integer file descriptors associated with the streams stdin, stdout, and stderr
       are 0, 1, and 2, respectively.  The preprocessor symbols STDIN_FILENO, STDOUT_FILENO,  and  STDERR_FILENO
       are  defined  with  these values in <unistd.h>.  (Applying freopen(3)  to one of these streams can change
       the file descriptor number associated with the stream.)

       Es necesario tener en cuenta que la mezcla de FILEs 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 exec(3), el hijo hereda todos los descriptores de ficheros abiertos, pero los flujos
       antiguos se hacen inaccesibles.

       Ya que los símbolos stdin, stdout y stderr 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 freopen(3), introducida especialmente para hacer posible reasignar stdin, stdout y stderr.
       Los flujos estándares se cierran llamando a exit(3) y por la terminación normal del programa.

ESTÁNDARES

       C11, POSIX.1-2008.

       The standards also stipulate that these three streams shall be open at program startup.

HISTORIAL

       C89, POSIX.1-2001.

NOTAS

       El flujo stderr no utiliza búffers. El flujo stdout  tiene  un  búffer  de  líneas  cuando  apunta  a  un
       terminar. Las líneas no aparecen hasta que se llama a fflush(3) o a exit(3), o se imprime una nueva línea
       ("\n"). 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 setbuf(3) o setvbuf(3). Es
       necesario tener en cuenta que en caso de que stdin 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 tcsetattr(3); ver también stty(1) y termios(3).

VÉASE TAMBIÉN

       csh(1), sh(1), open(2), fopen(3), stdio(3)

TRADUCCIÓN

       La   traducción   al   español   de   esta  página  del  manual  fue  creada  por  Carlos  Costa  Portela
       <c.c.portela@ieee.org> y Juan Piernas <piernas@ditec.um.es>

       Esta  traducción  es   documentación   libre;   lea   la   GNU   General   Public   License   Version   3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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
       ⟨debian-l10n-spanish@lists.debian.org⟩.