在UNIX系統(tǒng)中,用戶通過終端登錄系統(tǒng)后得到一個Shell進程,這個終端成為Shell進程的控制
終端(Controlling Terminal),控制終端是保存在PCB中的信息,而我們知道 fork 會復制PCB中的信息,因此由Shell進程啟動的其它進程的控制終端也是這個終端。
默認情況下(沒有重定向),每個進程的標準輸入、標準輸出和標準錯誤輸出都指向控制終
端,進程從標準輸入讀也就是讀用戶的鍵盤輸入,進程往標準輸出或標準錯誤輸出寫也就是輸
出到顯示器上。每個進程都可以通過一個特殊的設備文件 /dev/tty 訪問它的控制終端。事實上每個終端設備都對應一個不同的設備文件, /dev/tty 提供了一個通用的接口,一
個進程要訪問它的控制終端既可以通過 /dev/tty 也可以通過該終端設備所對應的設備文件來訪
問。 ttyname 函數(shù)可以由文件描述符查出對應的文件名,該文件描述符必須指向一個終端設備而
不能是任意文件。下面我們通過實驗看一下各種不同的終端所對應的設備文件名。