2012-06-06 66 views
2

我正在用C編程語言編寫應用程序,它能夠監控遠程計算機的系統信息,登錄用戶數量,可用內存等。Linux終端 - 打印大量數據

我會將收集的信息寫入標準輸出。但通常會有更多的信息出現在終端的一個窗口中,所以我需要通過結果實現某種「滾動」。

最簡單的解決方案是我認爲打印例如前25行,然後等待用戶向上或向下推,並相應地重寫所有行。

是否有一些更容易/更優雅的方式來處理終端上的這種輸出?

編輯:忘記提及,如果某些新輸入來自某個遠程計算機,我想刷新數據,例如:進程數發生變化。

+3

如何打印所有的內容並使用較少的傳呼機滾動輸出? – Artefact2

回答

3

聽起來像你需要詛咒。

這是guide to the ncurses library

這是一個老派的GUI終端庫。像topmake menuconfig這樣的東西使用它,所以它在每個系統上。它允許你停止思考「打印25行和刷新」以及更多關於「將數據放入可滾動的文本區域」的內容。

+0

你說可滾動的文本區域,但做這個滾動面板將包括創建一個Ncurses窗口,打印字符串,然後監聽用戶輸入,然後將所有的一行上下移動並寫入新的? – Andna

+0

@安娜:取決於你在做什麼,你不必寫一個新的。你可以用'newpad'得到一個'pad'並改變它的位置(一個函數調用)。 – cha0site

+0

好的,謝謝,我會嘗試Ncurses。 – Andna

3

使用外部尋呼機(例如more(或less))對輸出進行分頁。 Unix的優勢在於組合簡單的命令,創建管道而不是重新創建已經存在的功能。