『壹』 linux中怎麼安裝libcurses包
下載ncurses5.tar.gz壓縮文件
安裝方法:
復制到一個路徑:cpzxvf ncurses5.tar.gz
/bin/
解壓:tarzxvf ncurses5.tar.gz
安裝需要切換到root許可權:
su root
輸入密碼:xxx
cd ncurses<version> 進入解壓縮的目錄(注意版本)
./configure 按照系統環境製作安裝配置文件
make編譯源代碼並且編譯NCURSES庫
make install安裝編譯好的NCURSES庫
可以進入/usr/lib下查找是否有libncurses.so或libncurses.a這個庫,也可以man initscr()看需要的函數存在不存在,如果存在安裝cruses庫已經成功了。
二,測試:
輸入代碼如下:
執行:g++ 1.c -lncurses && a.out
『貳』 linux ncurses cbreak raw keypad
curses庫的函數的含義: cbreak():調用cbreak函數後,除了"Del"和"Ctrl"鍵外,接受其他所有字元輸入。 raw()和cbreak()兩個函 數都可以禁止行緩沖(line buffering)。區別是:在raw()函數模式下,處理掛起(CTRLZ)、 中斷或退出(CTRLC) 等控制字元時,將直接傳送給程序去處理而不產生終端信號;而在 cbreak()模式下,控制字元將被終端驅動程序解釋成其它字元。 nl()/nonl():輸出時,換行是否作為回車字元。nl函數將換行作為回車符,而nonl函數相反。 noecho()/echo():關閉/打開輸入回顯功能。 intrflush(WINDOW *win, bool bf):win為標准輸出。當bf為true時輸入Break,可以加快中斷的響應。但是,有可能會造成屏幕輸出信息的混亂。 keypad(WINDOW *win, bool bf):win為標准輸出。調用keypad函數後,將可以使用鍵盤上的一些特殊字元,如方向鍵,轉化成curses.h中的特殊鍵。 refresh():重繪屏幕顯示內容。在調用initscr函數後,第一次調用refresh函數會清除屏幕顯示。 希望能幫到你
『叄』 求教linux高手,關於ncurses庫的delwin函數
curses庫的函數的含義: cbreak():調用cbreak函數後,除了"Del"和"Ctrl"鍵外,接受其他所有字元輸入。 raw()和cbreak()兩個函 數都可以禁止行緩沖(line buffering)。區別是:在raw()函數模式下,處理掛起(CTRLZ)、 中斷或退出(CTRLC) 等控制字元時,將直接傳送給程序去處理而不產生終端信號;而在 cbreak()模式下,控制字元將被終端驅動程序解釋成其它字元。 nl()/nonl():輸出時,換行是否作為回車字元。nl函數將換行作為回車符,而nonl函數相反。 noecho()/echo():關閉/打開輸入回顯功能。 intrflush(WINDOW *win, bool bf):win為標准輸出。當bf為true時輸入Break,快中斷的響應。但是,有可能會造成屏幕輸出信息的混亂。 keypad(WINDOW *win, bool bf):win為標准輸出。調用keypad函數後,將可以使用鍵盤上的一些特殊字元,如方向鍵,轉化成curses.h中的特殊鍵。 refresh():重繪屏幕顯示內容。在調用initscr函數後,第一次調用refresh函數會清除屏幕顯示。 希望能幫到你
『肆』 linux 沒有curses庫,要安裝什麼包才能用
Ubuntu下安裝方法:
sudo apt-get install libncurses5-dev
CentOS下安裝方法:
1.到網上下載這個庫ncurses-5.6.tar.gz,同樣的需要解壓、configure、make。(./configure –with-named-curses-libs=/usr/lib/libncurses.so.5,指定目錄比較重要,這里提供參考。)
2.另一種方法就是簡單的yum命令了,輸入yum install ncurses-devel,自動完成。
curses庫是一組函數,程序員可以用它們來設置游標的位置和終端屏幕上顯示的字元樣式。curses庫最初是由UCB的開發小組開發的。大部分控制終端屏幕的程序使用curses。曾經由一組簡單的函數組成的庫現在包括了許多復雜的特性。
『伍』 linux下curses庫的菜單用戶指針怎麼用
GetMenu(),是得到一個窗口的菜單的句柄。CreateWindow裡面有個參數就是設置這個的,MDI/SDI程序都可以通過這個獲取主菜單句柄。DLG程序如果有菜單,一樣可以獲取。
如果是系統菜單——,程序圖標的彈出菜單,使用GetSystemMenu。獲取主菜單句柄。
如果是右鍵菜單,大都是臨時生成的句柄,不容易得到。除非是實現生成的一個句柄,右鍵點時候直接使用的。那就能知道這個句柄的值了。
GetMenuItemCount獲取菜單項的個數。 GetMenuItemID GetMenuItemInfo GetMenuString等都是獲取菜單句柄的某項的數據信息。
GetSubMenu 應該就是你要的函數來,得到子菜單的句柄,比如你要得到彈出菜單的子菜單,就用這個,就能得到子菜單句柄。再根據上面的獲取子項的函數,來獲取子菜單信息。
(具體看MSND,上面說明很詳細,還有例子)
『陸』 linux 不能查看curses的man手冊
可能安裝的時候它的man手冊沒有在man程序的查找路徑中,你可以自己查找到它的man手冊文件用man命令打開,或者直接google man curses
『柒』 使用curses庫的getch怎麼把緩沖除掉
curses是一個在Linux/Unix下廣泛應用的圖形函數庫.,作用是可以繪制在DOS下的用戶界面和漂亮的圖形。
Linux/Unix編程給人的感覺就比較"cool"一點,好像Linux編程都是在黑黑的終端下進行的。確實是這樣,許多Linux高手都喜歡在終端方式下工作,熟悉了一些命令以後,這樣的工作方式效率還是很高的。
『捌』 linux下的C語言編程需要什麼
一、工具的使用
1、學會使用vim/emacs,vim/emacs是linux下最常用的源碼編輯具,不光要學會用它們編輯源碼,還要學會用它們進行查找、定位、替換等。新手的話推薦使用vim,這也是我目前使用的文本編輯器。
2、學會makefile文件的編寫規則,並結合使用工具aclocal、autoconf和automake生成makefile文件。
3、掌握gcc和gdb的基本用法。掌握gcc的用法對於構建一個軟體包很有益處,當軟體包包含的文件比較多的時候,你還能用gcc把它手動編譯出來,你就會對軟體包中各個文件間的依賴關系有一個清晰的了解。
4、掌握svn/cvs的基本用法。這是linux,也是開源社區最常用的版本管理系統。可以去試著參加sourceforge上的一些開源項目。
二、linux/unix系統調用與標准C庫
系統調用應用軟體與操作系統的介面,其重要性自然不用說,一定要掌握。推薦學習資料為steven先生的UNIX環境高級編程(簡稱APUE)。
三、庫的學習
無論是在哪個平台做軟體開發,對於庫的學習都很重要,linux下的開發庫很多,我主要介紹一下我常常用到的一些庫。
1、glib庫
glib 庫是gtk+和gnome的基礎庫,並具是跨平台的,在linux、unix和windows下都可以用。glib庫對於linux平台開發的影響就像 MFC對windows平台開發的影響一樣,很多開源項目都大量的使用了glib庫,包括gimp、gnome、gaim、evolution和 linux下的集群軟體heartbeat.因為glib庫自帶有基本的數據結構實現,所以在學習glib庫的時候可以順便學習一下基本的數據結構(包括鏈表、樹、隊列和hash表)。
2、libxml庫
libxml是linux平台下解析XML文件的一個基礎庫,現在很多實用軟體都用XML格式的配置文件,所以也有必要學習一下。
3、readline庫
readline 庫是bash shell用的庫,如果要開發命令行程序,那麼使用readline庫可以減少很多工作量,比如bash里的命令行自動補全,在readline里就已經有實現,當然你也可以用自己的實現替代庫的行為。readline庫有很多網站介紹的,只要google一下readline就可以找到一堆了。
4、curses庫
curses 庫以前是vi程序的一部分,後來從vi里提取出來成為一個獨立的庫。curses庫對於編寫終端相關的程序特別有用,比如要在終端某一行某一列定位輸出,改變終端字體的顏色和終端模式。linux下的curses庫用的是GNU實現的ncurses(new curses的意思)。
5、gtk+和KDE庫
這兩個庫是開發GUI應用程序的基礎庫,現在linux下的大部份GUI程序都是基於這兩個庫開發的,對於它們 的學習也是很有必要的。
四、網路的學習
『玖』 (已解決)求助:嵌入式linux下,如何把ncurses與framebuffer顯
補充信息:實現了framebuffer,但沒有上任何的gui,僅可以通過寫framebuffer刷圖片/繪圖。現在是想實現在設備上實現一些簡單的文本終端用於其他驅動的測試,所以選擇了ncurses。個人考慮是:感覺ncurses是基於終端設備的,是不是需要先實現一個虛擬終端在framebuffer上顯示,然後在此終端上運行相應的ncurses程序即可?這樣就不需要對ncurses做任何修改。這樣新的問題是:怎樣讓framebuffer運行終端?目前在小心求證,也求了解的高手們給個思路,謝謝!問題解決:1)framebuffer中有一個叫framebuffer console的模塊,把LCD驅動實現為標準的framebuffer,然後支持framebuffer console模塊,實現為一個tty設備。2)在framebuffer console中支持硬體設備中的按鍵輸入,可能要做一些按鍵映射的工作。3)寫一個載入應用的程序,把標准輸入輸出定向到相應的tty設備,並且設定一些必須的環境變數,如ncurses使用的TERM和TERMINFO等變數(具體作用請查《UNIX Linux下curses庫開發指南》)。4)通過載入程序,使用exec執行實現的ncurses應用即可。當然,因為ncurses是基於終端的,即使沒有framebuffer console,不需要輸出到lcd,通過遠程連接到終端(通過telnet/ssh等),也是一樣可以使用ncurses庫的,條件僅是增加TERMINFO的支持即可,應用部分的代碼可以完全不需要修改。 查看更多答案>>