Konsola iki sekme açtığımı söylerim (Tab1 ve Tab2). Ben her ikisinde de tty çalıştırdığınızdaPrintf'ten gelen mesajlar terminale nasıl yönlendirilir?
Ben:
Tab1:
~$ tty
/dev/pts/23
Tab2:
~$ tty
/dev/pts/24
Bir printf ile basit bir program hello.c çalıştırırsanız ("Merhaba") Tab1'de, sistem yazımdan stdout'a (dosya kimliği 1) yazma/dev/pts/23'e yazma, konsole tarafından okunma ve Tab1'de görünme biçimine nasıl gider?
Sistem "Hello" dizesini/dev/pts/23 dizinine/dev/pts/24 dizinine vermesi gerektiğini nasıl biliyor? Ve bunu nasıl yapıyor?
Programın bash tarafından verilen bir parametresi var mı? Bu nedenle, hangi "psudoterminal" in "Merhaba" u göndereceğini biliyor mu? Ya da program diziyi, hangi psödoterminalin veriyi göndereceğini bilen bash'a (nasıl?) Geri gönderir? Eğer süreç açık dosyalar bakarsak
Gördüğünüz, yardımlarınız
Açık dosyalar kümesi her işlem için yereldir. Kabuğun, stdin/out/err yuvalarında açık olan özel bir sözde terminal aygıtı vardır; bu, ortaya çıktığında alt süreçler tarafından miras alınır. Sözde terminalin kendisi esas olarak sistem çağrısı tarafından tahsis edilen ve x-terminalinin ya da kullandığınız her şeyin ekranın diğer ucundan metin okuyup yazdığı bir adlandırılmış borudur. [Bu iyi bir okuma] (http://www.linusakesson.net/programming/tty/) bu arada. – doynax