信号高级特性

本文介绍了实时信号处理中的关键函数,包括sigqueue()用于发送实时信号,sigsuspend()用于挂起进程直到接收到信号,sigwaitinfo()和sigtimedwait()用于同步接收信号,以及signalfd()通过文件描述符获取信号。文中还提供了信号处理相关的数据结构定义。
#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);        //通过文件爱你描述符来获取信号

这里写图片描述

转载于:https://www.cnblogs.com/biaopei/p/7730611.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值