- Linux程序設計(第4版)
- (英)Neil Matthew Richard Stones
- 378字
- 2021-04-09 20:04:50
5.2 與終端進行對話
如果不希望程序中與用戶交互的部分被重定向,但允許其他的輸入和輸出被重定向,你就需要將與用戶交互的部分與stdout、stderr分離開。為此,你可直接對終端進行讀寫。由于Linux本身是多用戶系統,它通常擁有多個終端,這些終端或者是直接連接的,或者是通過網絡進行連接的,那么,你怎樣才能找到要使用的正確終端呢?
幸運的是,Linux和UNIX提供了一個特殊設備/dev/tty來解決這一問題,該設備始終是指向當前終端或當前的登錄會話。由于Linux把一切事物都看作為文件,所以你可以用一般文件的操作方式來對/dev/tty進行讀寫。
在下面的實驗中,你通過向getchoice函數傳遞參數的方法來加強對輸出的控制,修改后的程序為menu3.c。
實驗 使用/dev/tty
以menu2.c程序為藍本,對其做如下修改,使得輸入和輸出直接指向/dev/tty:


現在,當運行這個程序并將輸出進行重定向時,你仍然可以在終端上看到菜單提示信息,但程序的其他輸出(如表明菜單項已被選擇)則被重定向到文件中。

推薦閱讀
- Silverlight魔幻銀燈
- Visual C
- PHP+MySQL網站開發項目式教程
- Windows內核編程
- Java編程的邏輯
- Python Data Structures and Algorithms
- Go語言編程
- Java Web從入門到精通(第3版)
- Managing Microsoft Hybrid Clouds
- FPGA嵌入式項目開發實戰
- Building Business Websites with Squarespace 7(Second Edition)
- OpenCV Android開發實戰
- TypeScript圖形渲染實戰:2D架構設計與實現
- 數據結構:Python語言描述
- Elasticsearch搜索引擎構建入門與實戰