2011-05-28 268 views
1

我想了解stdinstdout ......這些都是我有
幾個問題,這裏是我使用的代碼:我想知道發生了什麼試圖瞭解標準輸入,標準輸出

int main() 
{ 
    struct termios new; 
    tcgetattr(1,&new); 
    new.c_lflag &= ~ECHO; 
    tcsetattr(1,TCSAFLUSH,&new); 
    return 0; 
} 

我把ECHO關閉stdin而不是stdout ....我的意思是,在這兩種情況下,我遇到同樣的結果....他們如何不同?

stty命令返回什麼?
運行上述程序後,我做了stty,發現line = 0的-echo,如果我是對的,則關閉stdin,但程序將ECHO標誌關閉爲stdout ??
對不起,如果我的疑惑聲小白:(

+4

也許我在這裏毫無頭緒,但我想這些是終端控制比stdin/stdout更多的問題。根據我的理解,後者只有簡單的數據流。 – Joey 2011-05-28 10:47:07

回答

2

這是終端的控制。如果你都stdin和stdout連接到同一個終端,那麼你還在管理同一對象的配置。

tcgetattr簡單。獲取有關與文件描述符關聯的對象信息

當然,他們沒有要與同一終端相關聯。例如,如果你運行:

./a.out >file.out那麼標準輸入仍然會重視編輯到終端,但標準輸出現在附加到一個文件。