- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
作为向用户空间发送中断的一部分,我看到了以下代码片段,但我不明白 si_int
如何影响信号传播。
static int SendToUsrSpace(void) {
struct siginfo info;
struct task_struct *t;
int ret;
memset(&info, 0, sizeof(struct siginfo));
info.si_signo = 44;
info.si_code = SI_QUEUE;
info.si_int = 1234; // WHY NOT 36 or any random number?
[...]
ret = send_sig_info(44, &info, t);
[...]
}
最佳答案
我认为 explanation is in sigqueue(3) .来自文本:
sigqueue() sends the signal specified in sig to the process whose PID
is given in pid. The permissions required to send a signal are the
same as for kill(2). As with kill(2), the null signal (0) can be
used to check if a process with a given PID exists.
The value argument is used to specify an accompanying item of data
(either an integer or a pointer value) to be sent with the signal,
and has the following type:
union sigval {
int sival_int;
void *sival_ptr;
};
If the receiving process has installed a handler for this signal
using the SA_SIGINFO flag to sigaction(2), then it can obtain this
data via the si_value field of the siginfo_t structure passed as the
second argument to the handler. Furthermore, the si_code field of
that structure will be set to SI_QUEUE.
因此,1234 看起来像是一个进程可以提取的任意值(如果它有一个处理此信号的处理程序)。它看起来像是一种用信号发送数据的方法。
补充阅读:我从sigaction(2)到达sigqueue , 它列出了 siginfo_t 的数据类型。
关于c - siginfo 中的 si_int 是什么以及它如何影响信号传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56588485/
我有一个自定义信号,它通过以下方式从内核模块发送到用户空间。请注意,我在附加到信号的 si_int 结构参数中包含了一个整数 (id),并且我已经知道我所定位的用户空间应用程序的 pid。 struc
我发现在 Linux 上,通过自己调用 rt_sigqueue 系统调用,我可以将我喜欢的任何内容放入 si_uid 和 si_pid 字段,调用成功并愉快地传递了不正确的值。自然地,发送信号的 ui
是否有除SIGINFO以外没有默认 Action 的信号。这link表明即使 SIGPWR 默认的操作也是终止进程。我的要求是仅当存在自定义信号处理程序时才处理信号,否则忽略该信号。 最佳答案 有关所
我正在尝试获取生成 sigsys 信号的系统调用的地址!但我从 gcc 收到以下错误: gcc emulator.c -fms-extensions error: ‘siginfo_t’ has no
作为向用户空间发送中断的一部分,我看到了以下代码片段,但我不明白 si_int 如何影响信号传播。 static int SendToUsrSpace(void) { struct siginfo
我是一名优秀的程序员,十分优秀!