keyrecord/keyplay
Menureal-time application を作ってみよう。「キーボードの入力を時間を含めて忠実に再現する プログラムを作れ」
ダメな例
NONBLOCKING モードを使ったread
fcntl で設定する
良い例
select を使った例を考える
サンプルコードを見てみよう
select を使わない例を考える
ioctl でreadが一文字で戻って来るようにする
man termios
時間をμsec 単位で測るには?
int gettimeofday(struct timeval *tp, struct timezone *tzp);
を使う。
時間は、usleep で稼ぐ。
void usleep(unsigned int microseconds);
間違っても100万回ループしたりしない。
keyrecord のサンプルコード Option
Java の場合は、java.nio の Selector と Channel Stream を使います。