私は大学でプログラミングのクラスを取り、いくつかのプログラムに取り組んでいます。kbhit()
独自の機能をプログラムできるかどうか知りたいです。と、見ていただければ、どのようkbhit()
にコーディングされているか。
目的は、使用する関数がどのように機能するかを知る必要があることです。
はいといいえ。
C言語には入力と出力の概念がありません。これは、システム コールに依存する標準ライブラリ (基本的に C で記述) に依存しています。
標準ライブラリも、Unix ライクなシステムと Windows に共通のシステム コールのセットも、非ブロッキング システム コールを処理しないため、システム固有のものを呼び出す必要があります。
繰り返しますが、C 言語から簡単に呼び出すことができます。
場合によります。
Windows では stdio (stdin/stdout などの標準 io) は常にブロックしているため、読み取りなどのブロック呼び出しを回避するには、OS 固有のシステム コールを使用する必要があります。
Linux では、fcntl を使用して stdio をノンブロッキングに変更できるため、特殊な関数呼び出しが不要になります。
はい、可能です。
それがどのように機能するかです:
キーがキーボード バッファにある場合は、0 以外の整数を返します。キーが押されるのを待ちません。
基本的にstdinからチェックします(C言語ではキーボードからのデフォルト入力データと仮定します)。
ここから開始できる実装があります。