Я много думал о работе с клавиатурой. Как это работает? Кажется, я не могу дать мне хорошее объяснение.
Я знаю, что прерывание клавиатуры происходит при каждом нажатии клавиши. Процессор останавливает все, что он обрабатывает, и загружает данные клавиатуры из буфера клавиатуры, сохраняя их в буфере системного уровня.
Но что будет дальше? Давайте возьмем практический пример. Что происходит, когда я запускаю следующий фрагмент кода:
...
std::string s;
std::cin >> s;
....
Читает ли cin
из представления уровня пользователя буфера клавиатуры уровня системы? Это имеет смысл в моей голове, потому что тогда 2 или более процессов могут читать из одного и того же буфера, и, таким образом, я не теряю нажатий клавиш. Но так ли это работает?
Я знаю, что говорю в общих чертах. Я использую OS X.