首页 > 解决方案 > 如何在while循环中检测用户输入是[ Control ] + [ D ]

问题描述

如何检测用户是否按下 [control + D]

我正在写一个shell。外壳必须一直打印“ > ”。
我正在尝试实现一个新命令-> [control + d]
当用户按下 [control] 按钮 [+] 和 [D] 按钮时
,shell 应该退出

这是须藤代码

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)

标签: cshellterminalcontrolsexit

解决方案


陷阱命令应该完成这项工作。

调整代码以捕获 EOF(ctrl+d) 并捕获信号

陷阱'回显“按ctrl + d”'0陷阱''2

读取数据时;做回声“做你的工作”完成


推荐阅读