Flujos de dato estándares
# Flujos de dato estándares

La entrada estándar (STDIN) es un concepto típico de los sistemas operativos Unix.

Cada proceso en estos entornos suele disponer de tres archivos abiertos al comienzo de su ejecución: la entrada, la salida y la salida de errores. Adquieren carácter de estándar porque suelen estar asignados a descriptores de archivos conocidos, de manera que un programa siempre tomará los datos de entrada por el descriptor cero, enviará los resultados por el uno y mostrará los errores por el dos. Pero esto es mera convención, y no tiene mucho sentido en sistemas gráficos como X Window o en programas funcionando como demonio.

Una forma de referirse a ellas es usando, según el lenguaje de programación y el entorno letras mayúsculas o minúsculas, los nombres STDIN, STDOUT y STDERR.

El shell del sistema es el encargado, generalmente, de abrir esta entrada y conectarla con el terminal al que está asignado el programa, puesto que es el programa más usual para comunicarse con un operador.

La entrada estándar también se suele conectar a la salida estándar de un proceso, de manera que el programa lea directamente los resultados que otro produce. En Unix se utiliza el carácter | para expresar dicho tipo de conexión:

$ programa1 | programa2 | programa3

Lo que viene a significar que se ejecuta el programa1 y su salida estándar (descriptor de archivo 1) se conecta con la entrada estándar del programa2 (descriptor 0), que a su vez hace lo mismo con programa3.

## Salida estándar

La salida estándar (STDOUT) es un concepto típico de los sistemas operativos Unix.

Determina el destino del resultado de un programa o proceso, por defecto es la pantalla y se muestra el resultado en la consola de la terminal, sin embargo puede redirigirse hacia un archivo por ejemplo.

Ejemplo:

ls -l > miarchivo.txt

