我注意到在sigaction的定义中,sa_sigactioncallback,最后一个参数是void *。
struct sigaction { void (*sa_handler)(int); void (*sa_sigaction)(int, siginfo_t *, void * ); sigset_t sa_mask; int sa_flags; void (*sa_restorer)(void); }
这可能意味着您可以将用户parameter passing给sa_sigaction处理程序。
但是,我一直无法find一个这样的例子。
有谁知道你是否可以传递参数给sigactioncallback函数? 你有一个简单的例子吗?
不幸的是, 虽然签名是一个void *,但它实际上是一个ucontext_t。 从单一的UNIX规范:
第三个参数可以被转换为一个指向ucontext_t类型的对象的指针,以指向信号传递时被中断的接收过程的上下文