Доступ к нажатиям клавиш на C

Я пытаюсь получить доступ к нажатиям клавиш на C. Я могу получить доступ к буквенно-цифровым клавишам. Как я могу получить доступ к клавишам Control , Shift и Alt ?
Кроме того, я где-то читал, что иногда при вводе текста в консоли ОС маскирует обратный пробел. Я хотел бы знать, где пользователь нажал клавишу backspace. Это не так, как знать, когда было нажато «\ n». GNU C. Ubuntu 11.

Дитрих Эпп ответил в комментарии: используйте библиотеку ncurses .

См. Также этот вопрос

И вы можете сделать графическое приложение клиента X11 ; в этом случае используйте графическую библиотеку инструментальных средств, такую ​​как GTK или Qt

Если вы хотите создать консольное приложение, используйте ncurses или, возможно, readline

И ваш вопрос, взятый буквально, не имеет смысла: строгий стандарт C не знает, какой ключ или нажатие клавиши (единственные операции ввода-вывода, упомянутые в стандарте, связаны с через FILE ). Вот почему большинство людей использует дополнительные библиотеки и стандарты (в дополнение к тем, которые требуются ISO C), например. Posix …

Простой ответ «вы не можете», по крайней мере, нелегко или без загрузки сторонних библиотек.

Большинство программ на C не должны ничего знать о клавиатуре или экране. Стандарт C предназначен только для чтения и записи в файлы (клавиатура и экран являются файлами для особых случаев).

Предполагая, что у вас есть веская причина для прямого доступа к клавиатуре, вы должны смотреть на библиотеку ncurses (http://www.gnu.org/software/ncurses/ncurses.html). Ncurses знает, сколько разных (виртуальных) терминалов и клавиатур работает, и он представляет собой единый интерфейс для них. Он позволяет вам рисовать экран и создавать заменяющий графический интерфейс, используя только блоки текста.

Поскольку вы используете Ubuntu, попробуйте запустить команду «aptitude», чтобы увидеть хороший пример того, что могут сделать ncurses.