信号高级特性
程序员文章站
2022-03-19 13:15:20
...
#include<signal.h>
int sigqueue(pid_t pid,int sig,const union sigval value); //将sig指定的实时信号发送给有pid指定的进程
union sigval{
int sival_int;
void *sival_ptr;
};//联合体,所以只能给其中一个赋值
int sigsuspend(const sigset_t *mask); // sigsuspend()系统调用将以mask所指向的信号集来替换进程的信号掩码,然后挂起进程的执行,知道捕获到信号,并从信号处理器中返回,一旦处理器返回,sigsuspend()会将进程掩码恢复为调用前的值
int sigwaitinfo(const sigset_t *set,siginfo_t *info); //同步接受信号
int sigtimedwait(const sigset_t *set,siginfo_t *info,const struct timespec *timeout); //sigwaitinfo()调用的便提,区别是运行指定等待时限
struct timespec{
time_t tv_sec;
long tv_nsec;
};
#include<sys/signalfd.h>
int signalfd(int fd,const sigset_t *mask,int flags); //通过文件爱你描述符来获取信号