stdout и нажатие клавиши

когда в консоли, если я нажимаю клавишу, некоторый контроллер прерываний отправляет код того ключа к ЦП, который изучает некоторую таблицу и, чем представляют то нажатие клавиши путем печати некоторого символа к stdout. Но, клавиатура отправляет код ASCII того ключа или просто некоторый стандартизированный код? С тех пор существует столько языков и дополнительных символов, ОС должна далее перевести свой код в некоторый символ согласно выбранной схеме пользователя, я предполагаю. Я спрашиваю, потому что я из Чешской Республики, и мы используем некоторые символы, которые не делают существует в стандартном коде ASCII. Таким образом, я думал, если я ввожу этот символ в консоль и затем печатаю его, позволяет, говорят в C++ с помощью cin и суде, и я установил локаль на чешский язык, stdin должен на самом деле отправить некоторый некод ASCII символа, который я нажал для ввода потока.Я прав?

0
задан 09.03.2010, 12:24

1 ответ

Для первого вопроса: клавиатуры отправляют scancodes, не ASCII или Unicode.

Программное обеспечение на компьютере затем интерпретирует scancodes, например, BIOS во время начальной загрузки или операционной системы. Например, в Linux scancodes и смещающий состояние интерпретируются контурными картами ядра, которые переводят коды клавиши в числа на 16 битов, которые обычно являются символами Unicode/ASCII.

2
ответ дан 24.11.2019, 06:56

Теги

Похожие вопросы