エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Linuxで入力待ちなしkeyread関数のようなものはありますか?
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Linuxで入力待ちなしkeyread関数のようなものはありますか?
入力待ちなしでキーを読むにはO_NONBLOCKフラッグを セットすればOKです。これにより、read()関数やscan... 入力待ちなしでキーを読むにはO_NONBLOCKフラッグを セットすればOKです。これにより、read()関数やscanf() 関数を呼び出しても、キー入力があるまでそこで 止まる(ブロックされる)ことが無くなります。 あるファイルにO_NONBLOCKをセットするには、 terra5さんが言うように、 open("/dev/tty", O_RDONLY|O_NONBLOCK); でそのファイルをオープンします。 標準入力のように、既に開いてしまっているファイルに 対しては、 fcntl(0, F_SETFL, O_NONBLOCK); です。 読み込みもterra5さんの通りです。 ただ、これだとリターンキーが押されるまで 入力なしとみなされます。 リターンキーを押さなくても1文字ずつ入力を 受けたい場合、もう一工夫要ります。 標準入力のターミナル属性を操作することでnon-canoni