这是该计划的要点:
while(true)
{
//bunch of codes that gets data from port ,
//if there is no data it waits here .
}
我正在使用linux,是否有像Ctrl + C这样的按键内置支持。我可以使用signal(SIGINT, signal_callback_handler);
来捕获它,但是Ctrl + C有一些问题,因为它会产生错误。
我想在按键上退出这个循环,这可能吗? 如果是,那该怎么做。
答案 0 :(得分:0)
while(!_kbhit()){
// do stuff here.
}
适用于Windows。
答案 1 :(得分:0)
你可以发出信号并打断
#include <csignal>
raise(SIGINT);
或
raise(SIGABRT);
答案 2 :(得分:0)
可以终止程序的功能是exit()
。
要输入您的角色的提前终止,您可以使用break
。
如果您愿意使用某种面向C的解决方案,我建议您查看this question。
对于与linux严格相关的内容,您可能应该参考ncurses library in combination with the exit function。
另外,不要假设特定的键组合等于终止,许多终端不是真正的终端而是模拟器,并且许多模拟器可由OS创建者和用户自定义。