Как обнаружить пользовательский ввод [Control] + [D] в цикле while - PullRequest
0 голосов
/ 05 октября 2019

Как определить, нажал ли пользователь [control + D]

Я пишу оболочку. Оболочка должна печатать «>» все время.
Я пытаюсь реализовать новую команду -> [control + d]
Когда пользователь нажимает кнопки [control], кнопки [+] и [D].
Оболочка должна выйти

Вот код sudo

int user_press_control_D = 0;
while(user_press_control_D == 0){
  running();
  detect(user_input);
  if user_input == (Control + D){
  user_press_control_D = 1; //quit 
  }
}

Как на самом деле написать / обнаружить / проверить, что пользователь нажал (Control + D)

1 Ответ

0 голосов
/ 05 октября 2019
Команда

Trap должна выполнить эту работу.

Настройка кода для захвата EOF (ctrl + d) и перехвата сигнала

trap 'echo' ctrl + d нажал '' 0 trap '' 2

во время чтения данных;сделать эхо "сделай свою работу" сделано

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...