Linux 上的 Ctrl+C 等终止信号或中断

Posted

技术标签:

【中文标题】Linux 上的 Ctrl+C 等终止信号或中断【英文标题】:Termination Signal or Interrupts like Ctrl+C on Linux 【发布时间】:2014-04-28 14:06:05 【问题描述】:

我想运行一个进程来检查我的按键状态,与我现有的无限循环(来自 pcap 标头)并行。我正在寻找与 Windows 的 GetAsyncKeyState 非常相似的东西。

我尝试了整整一周,发现编写类似于 GetAsyncKeyState 的东西很难。所以,我使用像 ctrl+c 这样的终止信号来执行某些操作。

我想知道,是否还有其他类似的终止信号可以使用程序捕获来执行我自己的操作?

附:我是 Linux 和 C++ 的初学者。对不起,如果我的问题很愚蠢。

【问题讨论】:

您可能正在寻找ncurses 【参考方案1】:

POSIX 使 SIGUSR1 和 SIGUSR2 可供应用程序使用。此外还有一组实时信号。仔细阅读man (7) signal 应该会提供基础知识,并且可以在网络上获得大量参考资料。

也就是说,听起来您正朝着扩展已经很尴尬的黑客的方向前进。也许你应该问一个单独的问题,详细说明你在做什么,有人可以帮助你找到更合适的途径来解决你的主要问题,而不是改进解决方法。

【讨论】:

首先,感谢您的回答。确实如此,最开始的问题是,我想要一个非阻塞的密钥读取指令(与 GetAsyncKeyState 非常相似)。我做了一些家庭作业,但真的没有发现任何有用的东西。如果您能对此有所了解,那将有很大帮助。再次感谢。 我对 Windows 不是很熟悉,但您可能最接近的可能是 this、that 或 other thing。不确定这些是否满足您的需求,但它就是这样。 谢谢!它帮助了我。我在 'termios.h' 的帮助下编写了一个函数【参考方案2】:

您可以捕获 pid(程序的进程标识符)并使用另一个终端放置 杀死 -9 pid

要获取 pid,只需输入终端 ps -u username

或者你可以打开应用程序监视器(就像windows的任务管理员)

【讨论】:

以上是关于Linux 上的 Ctrl+C 等终止信号或中断的主要内容,如果未能解决你的问题,请参考以下文章

[linux] linux信号

Linux信号和trap命令的使用

linux中如何重启某一进程

软件开发入门教程网之​​C++ 信号处理

Linux进程调度的kill命令

Linux几种中断信号的区别:HUP,INT,KILL,TERM,TSTP