LINUX_C_SIGNAL

学习linux下c编程的信号这一章,做一做笔记吧。
常用的4个发出信号的系统函数kill,raise,alarm,setitimer。
kill向指定的进程发送信号
raise向自己发送sig信号
alarm是定时器,等规定时间到了向自己发送SIGALRM信号。
setitimer,设置一段时间使得程序间隔执行。(具体没用过,不说很了解)

信号操作

函数解释
int sigemptyset(sigset_t *set)初始化信号set,将其设为空
int sigfillset(sigset_t *set)初始化set,将其设为所有信号的集合
int sigaddset(sigset_t *set,int signo)将signo加入set集合中
int sigdelset(sigset_t *set,int signo)将signo从set中删除
int sigismember(sigset_t *set,int signo)查询signo是否在set中
int sigprocmask(int how,const sigset_t *set,sigset_t *oset)将指定信号集合加入进程阻塞集合中,oset是保存原来的阻塞集合,一般为null,how是函数操作方式,SIG_BLOCK:增加信号集合到当前队列中;SIG_UNBLOCK:从当前阻塞集合中删除一个信号集合;SIG_SETMASK:设置当前信号集合为阻塞集合
int sigaction(int signo,const struct sigaction *act,struct sigaction *oact)重定义信号发送的动作,同上,act为添加的动作,oact为被替换保存的动作
int pause(void )挂起当前进程直到信号发生
int sigsuspend(const sigset_t *sigmask)挂起进程,调用的时候用sigmask取代当前阻塞集合

struct sigaction{
void (*sa_handler)(int signo);
void (*sa_sigaction)(int siginfo_t *info,void *act);
sigset_t sa_mask;
int sa_flags;
void (*sa_restore)(void);
}

注:signo中信号查看man 7 signal
关于这个,这位博主讲的比较详细:http://www.cnblogs.com/huyc/archive/2011/10/20/2218352.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值