2012-08-08 23 views
6

¿Cada proceso tiene su propia stdin, stdout y stderr o simplemente comparten 1 stdin, 1 stdout y 1 stderr? Quiero decir, por supuesto, generalmente hay 1 teclado y 1 terminal para cada computadora, pero ¿están las secuencias de salida & de entrada de procesos separadas entre sí?¿Cada proceso tiene su propio stdin, stdout y stderr?

Respuesta

10

stdout, stdin y stderr son solo las abstracciones dadas al proceso por el entorno operativo para interactuar con sus entradas y salidas. A pesar de que solo hay un teclado (en la mayoría de los casos, de todos modos), el sistema operativo sabe cómo decidir qué proceso recibe la entrada actual y entrega las pulsaciones de teclas al stdin de ese proceso. Del mismo modo, a pesar de que solo hay una pantalla, puede dividirse en varias ventanas. Finalmente, muchos procesos tienen su entrada y salida ligadas a una secuencia de archivos. Los sistemas operativos pueden permitirle enlazar múltiples procesos a una sola entrada o a un solo archivo de salida, pero incluso en ese caso los objetos que representan las corrientes stdin y stdout dentro del proceso serán separados: harían referencia al mismo objeto en el sistema operativo, y el sistema operativo administrará el intercambio de ese objeto entre sus usuarios.

Cuestiones relacionadas