2010-01-27 73 views
2

我想知道如何通過使用C來更好地控制輸入和輸出來創建控制檯應用程序。例如,文本編輯器nano如何顯示文件內容的某個部分屏幕上,然後保留底部靜止的命令列表。我知道你可以在Windows中使用win32 API來做到這一點,但是什麼是Unix/Linux相同?Linux/Unix控制檯圖形/控制

回答

5

很可能有一個ncurses界面控制屏幕上的項目在某個位置的屏幕繪圖和放置。 api在Linux系統和unix上都是標準的,有些可能是根據unix的商業變體下使用的curses變體來定義的,但除此之外,某些標準ncurses功能是兼容的。

+0

但是,ncurses用於Linux(Ubuntu)的是什麼? – MrD 2010-01-27 21:19:41

+0

@Matthew:根據上面的鏈接,ncurses使用GNU Midnight Commander(文件管理器),Suse的YAST和GNU Screen,僅舉幾例... – t0mm13b 2010-01-27 21:27:11

+0

@Matthew:ncurses也與termcap(終端功能)以確定使用什麼樣的控制檯,如控制檯ASCII,VTerm類型,如多少行和多少列......將termcap視爲中間層,底層是控制檯圖形,頂層是ncurses api。 – t0mm13b 2010-01-27 21:29:04

1

除了ncurses和取決於你的任務,你可能會發現newt,彩色文本模式的庫,基於窗口小部件的用戶界面,也是一個合適的選擇。有時蠑螈的視覺效果會更好。

1

如果你只是想做低層次的東西,你可能想使用termcapterminfo庫。

如果你想這樣做納米和幾乎所有其他交互式終端應用程序這樣做,你可能想使用ncurses。這樣,您將花更少的時間來實施終端控制邏輯,並在實際開發的應用程序上花費更多時間。