首页 运维 网络学院 查看内容

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

2012-3-23 11:05 713 0

摘要: a)         产生:按键,硬件异常,kill函数发送信号 b)   ...
关键词: nbsp 信号 函数 信号处理 进程 include Int func kill SIGINT

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)         注意:注册函数后,并不是马上执行该函数,而是等待信号来时再执行该函数。因此需要关注信号注册函数的位置,在该位置以后才能捕捉该信号。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部