前回の、エスケープシーケンスを使っての画面制御をプログラムでやるのは大変なので、以前はcurses、現在では後継のncursesを使う。
https://www.kushiro-ct.ac.jp/yanagawa/ex-2017/2-game/01.html#curses
インストールは、
$ sudo yum install ncurses-devel
[sudo] bg1 のパスワード:
メタデータの期限切れの最終確認: x:xx:xx 時間前の xxxx年xx月xx日 xx時xx分xx秒 に実施しました。
依存関係が解決しました。
================================================================================
パッケージ アーキテクチャー
バージョン リポジトリ サイズ
================================================================================
インストール:
ncurses-devel x86_64 6.1-8.20180923.fc29 fedora 508 k
依存関係をインストール中:
ncurses-c++-libs x86_64 6.1-8.20180923.fc29 fedora 32 k
トランザクションの概要
================================================================================
インストール 2 パッケージ
ダウンロードサイズの合計: 540 k
インストール済みのサイズ: 984 k
これでよろしいですか? [y/N]: y
パッケージのダウンロード中です:
(1/2): ncurses-c++-libs-6.1-8.20180923.fc29.x86 15 kB/s | 32 kB 00:02
(2/2): ncurses-devel-6.1-8.20180923.fc29.x86_64 238 kB/s | 508 kB 00:02
--------------------------------------------------------------------------------
合計 143 kB/s | 540 kB 00:03
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
Installed: ncurses-c++-libs-6.1-8.20180923.fc29.x86_64
インストール中 : ncurses-c++-libs-6.1-8.20180923.fc29.x86_64 1/2
Installed: ncurses-c++-libs-6.1-8.20180923.fc29.x86_64
Installed: ncurses-devel-6.1-8.20180923.fc29.x86_64
インストール中 : ncurses-devel-6.1-8.20180923.fc29.x86_64 2/2
Installed: ncurses-devel-6.1-8.20180923.fc29.x86_64
scriptletの実行中: ncurses-devel-6.1-8.20180923.fc29.x86_64 2/2
検証 : ncurses-c++-libs-6.1-8.20180923.fc29.x86_64 1/2
検証 : ncurses-devel-6.1-8.20180923.fc29.x86_64 2/2
インストール済み:
ncurses-devel-6.1-8.20180923.fc29.x86_64
ncurses-c++-libs-6.1-8.20180923.fc29.x86_64
完了しました!
$
こんな感じで。
今回は、画面の初期化initscr()"だけ"をやってみる。(正しい使い方でないのは承知の上。)
initscr(3) - Linux man page
curs_initscr 3x 非公式日本語訳
実行して、何も起きないと思って、何度もリターンキーを叩くと、
入力おかしくなる。
なので、endwin()を呼ぶべきかと。
Sample/ncurses/initscr/initscr/src/initscr at master · bg1bgst333/Sample · GitHub