2012-08-08 13 views
6

Ogni processo ha il proprio stdin, stdout e stderr o condivide solo 1 stdin, 1 stdout e 1 stderr? Voglio dire, naturalmente, ci sono generalmente 1 tastiera e 1 terminale per ogni computer, ma i flussi di input degli input & sono separati l'uno dall'altro?Ogni processo ha il proprio stdin, stdout e stderr?

risposta

10

stdout, stdin e stderr sono solo le astrazioni fornite al processo dall'ambiente operativo per interagire con i suoi ingressi e uscite. Nonostante il fatto che ci sia solo una tastiera (nella maggior parte dei casi, comunque) il sistema operativo sa come decidere quale processo riceve l'input corrente e consegna le sequenze di tasti allo stdin di quel processo. Allo stesso modo, nonostante ci sia solo una schermata, può essere suddivisa in diverse finestre. Infine, molti processi hanno i loro input e output legati a un flusso di file. I sistemi operativi possono consentire di associare più processi a un singolo input oa un singolo file di output, ma anche in questo caso gli oggetti che rappresentano gli stream stdin e stdout all'interno del processo saranno separati: farebbero riferimento allo stesso oggetto nel sistema operativo e il sistema operativo gestirà la condivisione di quell'oggetto tra i suoi utenti.

Problemi correlati