1

这是程序的要点:

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 有一些问题,因为它给出了错误。

我想在按键上摆脱这个循环,这可能吗?如果是,该怎么做。

4

3 回答 3

0
while(!_kbhit()){
    // do stuff here.
}

在 Windows 上工作。

于 2012-10-20T17:56:25.173 回答
0

您可以发出中断信号

      #include <csignal>

      raise(SIGINT);

或者

     raise(SIGABRT);
于 2012-10-20T18:02:20.133 回答
0

可以终止您的程序的函数是exit().

要输入您的 cicle 的提前终止,您可以使用break.

如果您愿意使用一些面向 C 的解决方案,我建议您看看这个问题

对于与 linux 严格相关的内容,您可能应该参考ncurses 库和 exit 函数

也不要假设特定的键组合等于终止,许多终端不是真正的终端而是仿真器,并且许多仿真器是由操作系统创建者和用户定制的。

于 2012-10-20T18:17:42.123 回答