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

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

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

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

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

【问题讨论】:

标签: c++ linux posix interrupt-handling keyboardinterrupt


【解决方案1】:

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

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

【讨论】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多