是否可以编写一个在XFCE终端中工作的C程序,直到用户点击Esc键?如果是,如何?Linux控制台键盘处理程序
2
A
回答
1
我建议你看看ncurses,通常用于实现那种在终端/主机应用键盘读的API。应该不需要以平台相关的方式来做到这一点。
0
交换机终端到non-canonical mode
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");
}
1
我想你问的是错误的问题。为什么您要使用交互式终端进行长时间运行?为什么不作为守护进程运行并定期记录“最佳”解决方案?该终端是供人类交互使用的。有更好的方法来处理必须运行数月的软件。
相关问题
- 1. 如何在JavaScript中处理控制台键盘输入?
- 2. 如何处理在控制台应用程序按键事件
- 3. 如何处理在C中的Linux控制台按下的键?
- 4. Android:键盘事件处理程序
- 5. 为键盘监听器部署C#控制台应用程序
- 6. 在控制台应用程序中等待键盘事件
- 7. 如何模拟键盘输入到控制台应用程序?
- 8. 在控制台应用程序中解析Java键盘输入
- 9. 捕获焦点键盘输入C#控制台程序
- 10. c#控制台应用程序重复键盘按?
- 11. 如何为Linux控制台编写虚拟键盘?
- 12. API控制Linux后台程序
- 13. 在Linux C控制台应用程序中模拟按键
- 14. 登录Python。处理程序和控制台复制
- 15. C++控制台键盘事件
- 16. 键盘控制?
- 17. 添加键盘快捷键到控制台应用程序 - 单声道兼容
- 18. 将键盘快捷键添加到控制台应用程序中C
- 19. 如何在wxWidgets控制台应用程序中处理关键事件?
- 20. 如何处理Qt控制台应用程序中的按键事件?
- 21. WP8键盘处理
- 22. Java控制台应用程序清理
- 23. Install4j用于目录选择的控制台处理程序
- 24. 如何从控制台的龙卷风处理程序登录?
- 25. 记录模块ValueError:无法配置处理程序'控制台'
- 26. 在控制台应用程序中处理
- 27. 批处理或VBS:运行控制台程序
- 28. 控制台应用程序中的错误处理
- 29. 全球异常处理(控制台应用程序)
- 30. 企业库控制台:无记录异常处理程序
用户点击Esc键后,你想要发生什么? – Glen 2009-09-11 12:41:46
我打算编写一个程序,计算一个特定问题的最佳解决方案。它应该输出它迄今为止发现的最佳解决方案。我不知道任何问题的好算法,所以我需要找到满足问题的随机数。由于这可能需要几个月的时间,因此只要我想停止计算,就可以中断计算。 – Jaska 2009-09-13 20:02:53