2

Windows APIには、SetConsoleMode関数があります。モード値の中で、値がわかりませんENABLE_PROCESSED_INPUT。MSDNドキュメントには

ENABLE_PROCESSED_INPUT : value (0x0001)CTRL+Cシステムによって処理され、入力バッファには配置されません。入力バッファがReadFileまたはによって読み取られている場合ReadConsole、他の制御キーはシステムによって処理され、ReadFileまたはReadConsoleバッファに返されません。モードも有効になっている場合ENABLE_LINE_INPUT、バックスペース、キャリッジリターン、および改行文字はシステムによって処理されます。

このフラグが設定されている場合、CTRL+C(システムによって処理されるため)入力バッファーに配置されないということですか?それともそうではありませんか(CTRL+C入力バッファに配置されます)?説明がわかりにくいです。誰か説明してもらえますか?

4

2 に答える 2

3

これは、フラグが設定されている場合、 Ctrl+Cが入力バッファーに入れられないことを意味します (代わりに、システムがそれを処理し、コンソールで実行されているプロセスにシグナルを送信します)。ENABLE_PROCESSED_INPUTSIGINT

フラグにも同じ動作が適用されます。ENABLE_LINE_INPUTフラグが設定されている場合、backspace、 、carriage returnなどの文字line feedは入力バッファーに入れられず、システムによって処理されます (バッファーから文字を消去し、行末を自動的に処理します)。

于 2012-07-09T08:21:03.727 に答える
0

ENABLE_PROCESSED_INPUT: value (0x0001):CTRL+Cシステムによって処理され、入力バッファーには配置されません。

したがって、基本的にはい、入力バッファには何も入りません。特殊なシンボルはシステムによって処理されるためです。

于 2012-07-09T08:18:40.817 に答える