By User:Gortu (apple2history.org) [Public domain], via Wikimedia Commons
Ubuntuでcursesの導入で少しはまったので、備忘録にします。
まず、大雑把にcursesについて説明すると、
・curses
cursesは、ターミナルを制御するためのAPIで、POSIX準拠のUNIXシステムで動作します。
・conio
MS-Windowsでの<conio.h>に相当する機能を持ちますが、関数などは異なるので互換性はありません。(しかし、getch()など同じ名前のものもあり、紛らわしい。)
・ncurses
curses:ncursesはちょうど、UNIX:Linuxに似ていて、cursesのGNU versionみたいです。
linux上のCからcursesライブラリを使う場合
#include <curses.h>
と記述します。
■curses.hがみつからない(apt-get)
はじめ<curses.h>がincludeパスになかったのでいろいろ探しましたが、
$sudo apt-get install libcurses-* $sudo apt-get install build-essentials $sudo apt-get install libncurses5-devなどをしている間になんか見つかるようになりました。
■undefined reference 'initscr'(linkオプション)
実行ファイルを作るときには、例えば$gcc example.c -o example -lcursesとしてライブラリをリンクする必要があります。
(-lcursesが、libcurses.aをリンクするオプション)
■内容(「BOOK」データベースより)
cursesとは、Cのプログラムから端末のディスプレイ画面を制御するために用意されているUNIXライブラリのことを指している。本書は、読者がcuresesライブラリを使ってCプログラムを書くときの助けとなるべく書かれたものである。