版权所有 © 2014 tutorialspoint
#include <signal.h> int sigwaitinfo(const sigset_t *set, siginfo_t *info); int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout);
int sigwaitinfo(const sigset_t *set, siginfo_t *info);
int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout);
sigwaitinfo() 从调用进程的挂起信号列表中删除已传递的信号,并将其作为函数结果返回信号编号。如果info参数不是 NULL,则它返回类型为siginfo_t的结构(参见sigaction(2)),其中包含有关信号的信息。
通过sigwaitinfo() 返回的信号按通常顺序传递;有关更多详细信息,请参见signal(7)。
sigtimedwait() 的操作方式与sigwaitinfo() 完全相同,除了它还有一个额外的参数timeout,该参数允许对进程挂起的时间设置上限。此参数的类型如下
struct timespec { long tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ }
如果此结构的两个字段都指定为 0,则执行轮询:sigtimedwait() 立即返回,或者返回有关针对调用方挂起的信号的信息,或者如果没有set中的任何信号挂起,则返回错误。
POSIX 未指定sigtimedwait() 的timeout参数的 NULL 值的含义,允许这种可能性具有与对sigwaitinfo() 的调用相同的含义,实际上,这正是 Linux 上所做的。
kill (2)
sigaction (2)
signal (2)
sigpending (2)
sigprocmask (2)
sigqueue (2)
广告