你能传递一个参数给sigaction吗?

我注意到在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类型的对象的指针,以指向信号传递时被中断的接收过程的上下文