LINUX学习笔记13——进程间通信2信号
2011-12-06 21:01
218 查看
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) 注意:注册函数后,并不是马上执行该函数,而是等待信号来时再执行该函数。因此需要关注信号注册函数的位置,在该位置以后才能捕捉该信号。
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) 注意:注册函数后,并不是马上执行该函数,而是等待信号来时再执行该函数。因此需要关注信号注册函数的位置,在该位置以后才能捕捉该信号。
相关文章推荐
- 嵌入式linux的学习笔记-进程间通信的信号与信号集(四)
- Linux进程间通信——使用信号
- Linux进程间通信-信号通信
- UNIX/Linux进程间通信IPC系列(五)信号
- Linux进程间通信(二): 信号(上)
- [Linux] 第 13 章 进程间通信 : 管道
- 进程间通信--信号(SIG)
- linux之进程间通信--使用信号
- 进程间通信--信号
- 唯快不破:Linux 进程间通信 --- 信号通信
- Linux进程间通信——使用信号
- 专题 13 IPC之信号量
- Linux进程间通信——使用信号
- Linux进程间通信——信号集函数
- LINUX进程间通信---使用信号(转自倦飞L)
- Linux进程间通信——使用信号
- Linux环境进程间通信(二): 信号
- Linux环境进程间通信(二): 信号(上)
- Linux 进程间通信 信号