Subject: How do I read characters ... without requiring the user to hit RETURN? Date: Thu Mar 18 17:16:55 EST 1993
端末パラメータを御自分で頑張って設定するのが面倒で嫌になった方、stty プログラムを使えば簡単にできます (端末パラメータの設定には "ioctl(2)" システムコールを使います)。以下に例を示します。しかしながら、この例の ような方法では実行速度が遅く、効率的でありません。折を見てコードをちゃ んと (ioctlを使って) 書き直した方がいいでしょう。
#include <stdio.h> main() { int c; printf("Hit any character to continue¥n"); /* * ここは ioctl() の方がいい。面倒臭がりな * プログラマはこうするでしょうけど。 */ system("/bin/stty cbreak"); /* または "stty raw" */ c = getchar(); system("/bin/stty -cbreak"); printf("Thank you for typing %c.¥n", c); exit(0); }何人かの方々が、この問題のより正確な解答を私に送ってくれました。済みま せんが、それらはこのリストの守備範囲を越えていますので、ここには掲載し ません。
便利な画面制御のライブラリである "curses" のドキュメントを調べてみるの もいいかも知れません。この例のような単一文字の入出力をよく使うというこ とは、画面表示の制御をしたりすることも多いのではないでしょうか。 "curses" ライブラリには文字入力、画面制御の両方に関するいろいろ便利な関 数群が含まれています。