APUE 信号学习笔记

来源:互联网 发布:作品展示平台源码 编辑:程序博客网 时间:2024/05/08 12:40
#include <sys/types.h>
#incude 
<signal.h>
#include 
<unistd.h>

typedef 
void Sigfunc(int);
Sigfunc 
*signal(int, Sigfunc*);

int kill(jpid_t pid, int signo);
int raise(int signo);
unsigned 
int alarm(unsigned int seconds);//unistd.h
int pause();//unistd.h

每个进程都有一个信号屏蔽字,它规定了当前要阻塞递送到该进程的信号集。对于每种可能的信号,该屏蔽字都有一位与之对应。对于某种信号,若其对应位已设置,则它当前是阻塞的。进程可以调用sigprocmask来检测和更改其当前信号屏蔽字。信号数可能会超过一个整型数所包含的二进制位数,因此出现了数据类型sigset_t,它保持一个信号集。

kill函数将信号发送给进程或进程组。raise函数则允许进程向自身发送信号。

POSIX.1将信号编号0定义为空信号。如果signo参数是0,则kill仍执行正常的错误检查,但不发送信号。这常用来确定一个特定进程是否仍旧存在。如果想一个并不存在的进程发送空信号,则kill返回-1,errno则被设置为ESRCH。

使用alarm函数可以设置一个时间值。当设置的时间超过时,产生SIGALARM信号。如果不忽略或不捕捉此信号,则默认动作是终止该进程。每个进程只能有一个闹钟时间

pause是在信号处理函数处理完毕后才返回。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 正好压本科线该怎么办 大脚趾被砸了怎么办 脊柱侧弯每天疼怎么办 内衣扣的位置脊柱疼怎么办 练完瑜伽颈椎疼怎么办 乳胶枕头太高了怎么办 枕头太高脖子痛怎么办 颈椎突出症状缓解后怎么办 外痔疼的的历害怎么办 小肚子疼得历害怎么办 练瑜伽伤到颈椎怎么办 鼻子干口干胃烧怎么办 颈椎病压迫神经引起手麻怎么办 4个月婴儿睡觉少怎么办 晚上睡觉睡不好老是醒来怎么办 吃了没熟的香蕉怎么办 70岁父母老吵架怎么办 怀孕七个月晚上睡不着怎么办 九个月宝宝睡眠不好怎么办 一个月的宝宝放不下怎么办 宝宝被吓了发烧怎么办 体内火气重睡不着觉怎么办 宝宝睡觉一直翻身发出声音怎么办 严重失眠怎么办整夜睡不着觉 腿疼得睡不着觉怎么办 19岁晚上睡不着该怎么办 工作累的想哭怎么办 心累迷茫想哭怎么办 白天很累晚上又睡不着怎么办 发型睡觉压乱了怎么办 通宵一夜第二天怎么办 夏天了腿脚还凉怎么办 咖啡色三天了月经还是下不来怎么办 睡觉姿势不对腰疼怎么办 来月经吃了香瓜怎么办 减肥期间晚上有饭局怎么办 减肥期间遇到晚上聚餐怎么办 婴儿脸不向上睡怎么办 睡觉压奶了疼怎么办 堵奶了挤不下来怎么办 孕36周胎儿腿短怎么办