- 1. 概要
- 2. インストール
- 3. 環境
1. 概要
気づいたら「curses」と「ncurses」と同じことを2つ書いていたので統一しようと思います。
「ncurses」は、「new curses」の略ですな。
そのあたりは「ウィキペディア - ncurses」でどうぞ。
コンソール画面でカーソル移動やスクリーン制御・非同期入力が使えるというありがたいライブラリです。
モニタリングしているものを「printf」で出力していると画面が流れていってしまったりしますが。
「ncurses」を使えば、一定の位置に一定の情報を表示し続けたりと・・・「CUI」でありながら「GUI」ライクな動きができます。
コンソールしかないようなリアルタイムのシステムで、モニタリングなどに使えば、大変重宝します。
あぁ、うまく説明できないなぁ。
今回、ウィキペディアを読んで初めて知ったのですが、「FreeBSD」のインストール時や「bsdconfig」で表示される
この画面。
「ncurses」を使って表示しているんですと。
現在(2024年9月24日)の「FreeBSD」のインストーラは、出力先のモニタによって、「GUI」と「CUI」を使い分けているようです。
少なくと、「FreeBSD」のロゴマークは、完全にそう。
2. インストール
次項、以下「ncurses」を実例を使って説明しようかと思うのですが。
プラットフォームは 「FreeBSD」を使用しています。
最低限必要なこととして、「ncurses」をインストールしておく必要があります。
インストールされているか確認するには。
$ pkg version -n ncurses
ncurses-6.0.0s20171223_1 =
何か表示されていれば、インストールされているということになります。
インストールされていなければ、以下のコマンドでインストールします。
pkg install ncurses
「CentOS」では、なにかに付属してインストールされているようですが、明示的にインストールするには、
yum nstall ncurses
3. 環境
ここの内容は、主に以下の環境で確認しています。
OS FreeBSD 10.3 RELEASE i386
コンパイラ Clang 3.4.1
make GNU Make 4.2.1
「curses」を C言語で使うためには、「curses.h」もしくは「ncurses.h」のインクルードとリンク時に「-lncursesw」が必須になります。
「libncursesw」は「libncurses」のワイド文字対応版で、「UTF-8」で記述する場合、「-lncursesw」の方が文字化けが少ないようです。
すなわち、ソースファイル名を「curses.c」として上部で、以下のように宣言することと
#include <ncurses.h>
「Makefile」は、以下のように記述します。
MAIN = cursesw
CC = clang
all : curses
$(MAIN) : $(MAIN).c
$(CC) $@.c -o $@ -lncursesw
|
|