你可以通过论证来解决问题吗?

sim*_*mon 8 linux

我注意到在sigaction的定义中,sa_sigaction回调,最后一个参数是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);
}
Run Code Online (Sandbox Code Playgroud)

这有点表明您可以将用户参数传递给sa_sigaction处理程序.

但是,我一直无法找到这样的例子.

有谁知道你是否可以将参数传递给sigaction回调函数?你有一个简单的例子吗?

R S*_*hko 13

不幸的是.虽然签名是无效*,但它实际上是一个ucontext_t.从单UNIX规范:

第三个参数可以转换为指向ucontext_t类型的对象的指针,以指代在传递信号时被中断的接收进程的上下文