前回の、エスケープシーケンスを使っての画面制御をプログラムでやるのは大変なので、以前は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