我正在用C編程語言編寫應用程序,它能夠監控遠程計算機的系統信息,登錄用戶數量,可用內存等。Linux終端 - 打印大量數據
我會將收集的信息寫入標準輸出。但通常會有更多的信息出現在終端的一個窗口中,所以我需要通過結果實現某種「滾動」。
最簡單的解決方案是我認爲打印例如前25行,然後等待用戶向上或向下推,並相應地重寫所有行。
是否有一些更容易/更優雅的方式來處理終端上的這種輸出?
編輯:忘記提及,如果某些新輸入來自某個遠程計算機,我想刷新數據,例如:進程數發生變化。
我正在用C編程語言編寫應用程序,它能夠監控遠程計算機的系統信息,登錄用戶數量,可用內存等。Linux終端 - 打印大量數據
我會將收集的信息寫入標準輸出。但通常會有更多的信息出現在終端的一個窗口中,所以我需要通過結果實現某種「滾動」。
最簡單的解決方案是我認爲打印例如前25行,然後等待用戶向上或向下推,並相應地重寫所有行。
是否有一些更容易/更優雅的方式來處理終端上的這種輸出?
編輯:忘記提及,如果某些新輸入來自某個遠程計算機,我想刷新數據,例如:進程數發生變化。
聽起來像你需要詛咒。
這是guide to the ncurses
library。
這是一個老派的GUI終端庫。像top
和make menuconfig
這樣的東西使用它,所以它在每個系統上。它允許你停止思考「打印25行和刷新」以及更多關於「將數據放入可滾動的文本區域」的內容。
使用外部尋呼機(例如more
(或less
))對輸出進行分頁。 Unix的優勢在於組合簡單的命令,創建管道而不是重新創建已經存在的功能。
如何打印所有的內容並使用較少的傳呼機滾動輸出? – Artefact2