是否有可能编写一个在XFCE终端中工作的C程序,直到用户点击Esc键为止?如果是,怎么样?
答案 0 :(得分:1)
我建议你研究ncurses,这是一种API,通常用于在终端/控制台应用程序中实现这种键盘读取。不应该以平台相关的方式执行此操作。
答案 1 :(得分:1)
最简单的解决方案是在终端窗口中按Ctrl-C。您的应用程序将立即停止或您可以使用SIGINT信号处理程序处理事件。
#include <unistd.h>
#include <stdio.h>
#include <signal.h>
volatile int exit_loop;
void sig_hnd( void ){ exit_loop=1; }
int main(void){
signal( SIGINT, (void (*)(int))sig_hnd );
for( exit_loop=0; !exit_loop; ){
puts( "do some work" );
sleep(1);
}
puts( "\nend of work\n" );
}
答案 2 :(得分:1)
我认为你问的是错误的问题。为什么您在长时间运行的过程中使用交互式终端?为什么不只是作为守护进程运行并定期记录“最佳”解决方案?终端用于人类的交互使用。有更好的方法来处理必须运行“几个月”的软件。
答案 3 :(得分:0)
将终端切换到non-canonical mode