3

私は大学でプログラミングのクラスを取り、いくつかのプログラムに取り組んでいます。kbhit()独自の機能をプログラムできるかどうか知りたいです。と、見ていただければ、どのようkbhit()にコーディングされているか。

目的は、使用する関数がどのように機能するかを知る必要があることです。

4

3 に答える 3

3

はいといいえ。

C言語には入力と出力の概念がありません。これは、システム コールに依存する標準ライブラリ (基本的に C で記述) に依存しています。

標準ライブラリも、Unix ライクなシステムと Windows に共通のシステム コールのセットも、非ブロッキング システム コールを処理しないため、システム固有のものを呼び出す必要があります。

繰り返しますが、C 言語から簡単に呼び出すことができます。

于 2015-05-06T18:42:30.943 に答える
2

場合によります。

Windows では stdio (stdin/stdout などの標準 io) は常にブロックしているため、読み取りなどのブロック呼び出しを回避するには、OS 固有のシステム コールを使用する必要があります。

Linux では、fcntl を使用して stdio をノンブロッキングに変更できるため、特殊な関数呼び出しが不要になります。

于 2015-05-06T18:28:48.757 に答える
1

はい、可能です。

それがどのように機能するかです:

キーがキーボード バッファにある場合は、0 以外の整数を返します。キーが押されるのを待ちません。

基本的にstdinからチェックします(C言語ではキーボードからのデフォルト入力データと仮定します)。

ここから開始できる実装があります。

于 2015-05-06T18:33:34.850 に答える