2012-07-09 13 views
2

在windows API,有SetConsoleMode功能。 在這些模式中的數值,我無法理解的ENABLE_PROCESSED_INPUT值。 的MSDN文件說ENABLE_PROCESSED_INPUT的SetConsoleMode標誌的含義

ENABLE_PROCESSED_INPUT : value (0x0001)CTRL+C由系統處理並沒有放置在輸入緩衝器中。如果輸入緩衝器正在由ReadFileReadConsole讀取,其他控制鍵由系統處理並在ReadFileReadConsole緩衝器不會返回。如果還啓用了ENABLE_LINE_INPUT模式,則退格,回車和換行符由系統處理。

這是否意味着,當這個標誌設置,CTRL+C沒有放置在輸入緩衝區(因爲它是由系統處理)?或者否則(CTRL+C被放置在輸入緩衝區中)?解釋讓我感到困惑..請任何人都可以向我解釋一下嗎?

+1

什麼是你的問題?該文本清楚地表明「CTRL + C由系統**處理**並且**不放入輸入緩衝區**」。 – 2012-07-09 08:19:22

回答

3

這意味着Ctrl鍵 + Ç將不會把在輸入緩衝器中,如果ENABLE_PROCESSED_INPUT標誌被設置(而不是,系統將處理它和SIGINT信號發送到在控制檯上運行的過程)。

相同的行爲適用於ENABLE_LINE_INPUT標誌:如果它被設置,像backspacecarriage returnline feed不放入輸入緩衝區中的字符,並通過系統(從緩衝與處理結束OF-擦除字符的處理線自動)。

0

ENABLE_PROCESSED_INPUTvalue (0x0001)CTRL+C由系統處理並是沒有放置在輸入緩衝器中。

所以basicaly是的,沒有進入輸入緩衝器,由於特殊的符號系統處理。