認識ncurses

Koma_Wong發表於2018-06-20
  • Copyright(C) NCURSES Programming HOWTO

NCURSES 是什麼?

你可能會疑惑,引入的這些技術術語是什麼。假設在使用termcap 或者terminfo 的情況下,每個應用程式都在訪問terminfo資料庫並且做一些必要的處理(比如傳送控制字元等等)。不久這些操作的複雜度將會變得難以控制。於是,curses 誕生了。curses 的命名是來自一個叫做“cursor optimization”(游標最優化)的雙關語(譯者注:curses 本身有詛咒的意思)。curses構成了一個工作在底層終端程式碼之上的封裝,並向使用者提供了一個靈活高效的API(Application Programming Interface 應用程式介面)。它提供了移動游標,建立視窗,產生顏色,處理滑鼠操作等功能。使程式設計師編寫應用程式不需要關心那些底層的終端操作。 那麼ncurses 又是什麼?ncurses是最早的System V Release 4.0 (SVr4)CURSES的一個克隆。這是一個可自由配置的庫,完全相容舊版本的curses。簡而言之,它是一個管理應用程式在字元終端顯示的函式庫。當後面提到curses的時候,同時也可以和NCURSES互換。 關於ncurses 詳細的更新歷史可以查閱ncurses 原始碼分發包中的NEWS 檔案。Thomas Dickey 是目前的維護人員。你可以通過bugncurses@gnu.org聯絡維護人員

我們可以用NCURSES 做什麼?

ncurses 不僅僅封裝了底層終端功能,而且提供了一個相當穩固的工作框架( Framework)可以在字元模式下產生美觀的介面。它提供了一些建立視窗的函式。而它的姊妹庫Menu、Panel 和Form 則對curses 基礎庫及進行了擴充套件。這些擴充套件庫通常都隨同curses 一起發行。 我們可以建立一個同時包含多個視窗(multiple windows)、選單(menus)、皮膚(panels)和表單(forms)的應用程式。視窗可以被獨立管理,例如讓它滾動或者隱藏。選單(Menus)可以讓使用者建立命令選項,方便使用者執行命令。而表單( Forms)允許使用者建立一些簡單的資料輸入和輸出的視窗。皮膚(Panels)是ncurses 視窗管理功能的擴充套件,可以用它覆蓋或堆積視窗。以上這些就是ncurses 的簡單介紹。

在哪能得到它

http://ftp.gnu.org/gnu/ncurses/

如何編譯ncurses原始碼

tar zxvf ncurses<version>.tar.gz  # 解壓縮並且釋放檔案包
cd ncurses<version>               # 進入解壓縮的目錄(注意版本)
./configure                       # 按照你的系統環境製作安裝配置檔案
make                              # 編譯原始碼並且編譯ncurses 庫
su root                           # 獲得root 許可權
make install                      # 安裝編譯好的NCURSES 庫