问题
Python provides a signals
module and os.kill
; does it have a facility for sigqueue()
(real-time signals with attached data)? What are the alternatives?
回答1:
You could do it with ctypes
>>> from ctypes import *
>>> c = cdll.LoadLibrary("libc.so.6")
>>> c.sigqueue
<_FuncPtr object at 0xb7dbd77c>
>>> c.sigqueue(100, 10, 0)
-1
>>>
You'll have to look up how to make a union in ctypes which I've never done before but I think is possible.
回答2:
One alternative, if no one has done it yet, would be to wrap the C library yourself - should be pretty quick and painless. Look here for more details.
来源:https://stackoverflow.com/questions/1822449/how-do-i-send-and-receive-real-time-signals-sigqueue-in-python