C言語 - ncurses - 概要

クラウディア 
1. 概要
2. インストール
3. 環境

1. 概要

 気づいたら curses と ncurses と同じことを2つ書いていたので統一しようと思います。  ncurses は、new curses の略ですな。  そのあたりは「ウィキペディア - ncurses」でどうぞ。  コンソール画面でカーソル移動やスクリーン制御・非同期入力が使えるというありがたいライブラリです。  モニタリングしているものを printf で出力していると画面が流れていってしまったりしますが、ncurses を使えば、一定の位置に一定の情報を表示し続けたりと・・・CUI でありながら GUI ライクな動きができます。  コンソールしかないようなリアルタイムのシステムで、モニタリングなどに使えば、大変重宝します。  あぁ、うまく説明できないなぁ。  今回、ウィキペディアを読んで初めて知ったのですが、FreeBSD のインストール時や bsdconfig で表示される  この画面
「bsdconfig」

 ncurses を使って表示しているんですと。

2. インストール

 次項、以下 ncurses を実例を使って説明しようかと思うのですが。  OS は 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