如何在Python中使用`sigqueue()`发送和接收实时信号?

2 投票
2 回答
1558 浏览
提问于 2025-04-15 16:32

Python 提供了一个 signals 模块和 os.kill 函数,但它有没有类似 sigqueue() 的功能呢?也就是可以发送实时信号并附带数据的功能?如果没有,那有什么其他的选择呢?

2 个回答

2

如果还没有人做过的话,另一个选择就是自己把C语言的库封装一下,这样做应该很快也很简单。想了解更多细节,可以点击这里

3

你可以使用 ctypes 来实现这个功能。

>>> from ctypes import *
>>> c = cdll.LoadLibrary("libc.so.6")
>>> c.sigqueue
<_FuncPtr object at 0xb7dbd77c>
>>> c.sigqueue(100, 10, 0)
-1
>>>

你需要查一下怎么在 ctypes 中创建一个联合体,我之前没做过,但我觉得是可以做到的。

撰写回答