【问题标题】:Linux signals with extra information parameter带有额外信息参数的 Linux 信号
【发布时间】:2023-04-24 18:39:01
【问题描述】:

我本来想在 sa_sigaction 处理程序的回调中有一些额外的信息,这似乎是不可能的。

所以我想知道您是否可以向我推荐替代方案。基本要求:

  1. 函数 A 通过指向结构的指针引发信号/事件
  2. 处理函数处理事件。
  3. 处理函数只会在事件上调用,并且循环等待事件,如 select() 是不可取的。

【问题讨论】:

    标签: c events asynchronous select-function


    【解决方案1】:

    喜欢这个?

        int sigqueue(pid_t to_pid, int signr, const union sigval pointer_or_int);
    

    在另一端:

       int signr=int sigwaitinfo(const sigset_t *set, siginfo_t *info);
    

    警告!:通过引用传递可能无法在不同的地址/进程空间之间工作(我自己还没有测试过)所以首先在同一进程的线程之间进行测试....

    祝你好运:-)

    【讨论】: