Python 提供了一个 signals 模块和 os.kill 函数,但它有没有类似 sigqueue() 的功能呢?也就是可以发送实时信号并附带数据的功能?如果没有,那有什么其他的选择呢?
signals
os.kill
sigqueue()
如果还没有人做过的话,另一个选择就是自己把C语言的库封装一下,这样做应该很快也很简单。想了解更多细节,可以点击这里。
你可以使用 ctypes 来实现这个功能。
>>> from ctypes import * >>> c = cdll.LoadLibrary("libc.so.6") >>> c.sigqueue <_FuncPtr object at 0xb7dbd77c> >>> c.sigqueue(100, 10, 0) -1 >>>
你需要查一下怎么在 ctypes 中创建一个联合体,我之前没做过,但我觉得是可以做到的。