LINUX学习笔记——进程间通信2信号

社区服务
高级搜索
猴岛论坛电脑百科LINUX学习笔记——进程间通信2信号
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
3个回复

[网络资讯]LINUX学习笔记——进程间通信2信号

楼层直达
小天°

ZxID:6660801

等级: 元老

举报 只看楼主 使用道具 楼主   发表于: 2012-03-23 0
a)         产生:按键,硬件异常,kill函数发送信号

b)         常见信号:

1.         SIGHUP:结束信号

2.         SIGINT:中断信号ctrl+c

3.         SIGKILL:结束接收信号的进程

4.         SIGTERM:KILL命令发出的信号

5.         SIGCHLD:标志子进程停止或结束的信号

6.         SIGSTOP:停止信号

c)         信号处理:

1.         忽略此信号:除了SIGKILL, SIGSTOP

2.         执行用户希望的动作:

3.         执行系统默认的动作:

d)         发送信号:

1.         Kill:可以给自己发,也可以给别人发信号

a)         Int kill(pid_t pid, int signo);

b)         #include<sys/types.h>

#include<signal.h>

c)         Pid:

1.         >0:将信号发给ID为pid的进程

1.         ==0:发给同组的进程

2.         <0:发给其他组ID等于pid绝对值的进程

3.         ==-1发给所有进程

d)         注意:在程序中使用以上函数,在程序外可以使用kill指令发送信号

1.         例:Kill –s SIGINT pid

2.         查看进程号:ps aux

2.         Raise:只能给自己发

a)         Int raise(int signo)

b)         #include<sys/types.h>

c)         #include<signal.h>

3.         alarm:设定时间,到时产生SIGALARM信号,不捕捉,默认终止

a)         unsigned int alarm(unsigned int seconds)

1.         #include<unistd.h>

4.         Pause:进程挂起直到捕捉到一个信号,类似于wait(子进程退出)

a)         Int pause(void)

1.         #include<unistd.h>

e)         信号处理函数:

1.         Sighandler_t signal(int signo, void(*func)(int))

a)         Func可能值:

1.         SIG_IGN:忽略此信号

2.         SIG_DFL:按系统默认方式处理

3.         信号处理函数名:使用该函数处理,func的参数是整形

b)         #include<signal.h>

c)         例:signal(SIGINT, my_func);

1.         为SIGINT信号注册信号处理函数。

d)         注意:注册函数后,并不是马上执行该函数,而是等待信号来时再执行该函数。因此需要关注信号注册函数的位置,在该位置以后才能捕捉该信号。

际遇之神

惩罚

老婆生了个儿子,开心的到处发饼,花了DB5

本帖de评分: 1 条评分 DB +10
DB+10 2012-03-23

多谢分享,电脑技术版块欢迎你。


技术永无止境,吹嘘只会自我堕落,难成大器!

技术组只要求两点,只要求做事踏实一点,遇事冷静一点。其他自由发挥。

忆海三千梦沧澜

ZxID:15934394

等级: 元帅
 你心里我永不及他

举报 只看该作者 沙发   发表于: 2012-03-23 0
多谢分享,电脑技术版块欢迎你。
世界上最灿烂的不是阳光,而是心动女生的微笑。
茉莉花开99

ZxID:17754992

等级: 上尉
举报 只看该作者 板凳   发表于: 2012-03-23 0
看起来很有用哦!

际遇之神

奖励

用手机上论坛被老师发现,没想到老师是猴岛版主,获得5DB

初颜°Am▲

ZxID:3055

等级: 禁止发言

举报 只看该作者 地板   发表于: 2012-03-24 0
晕,这是什么啊?~
« 返回列表
发帖 回复