来源:自学PHP网 时间:2015-04-14 11:51 作者: 阅读:次
[导读] a) 产生:按键,硬件异常,kill函数发送信号b) 常见信号:1. SIGHUP:结束信号2. SIGINT:中断信号ctrl+c3. SIGKILL:结束接收信号的进程4. SIGTERM:KILL命令发出的信号5. SIGCHLD:标志子进程停止或结束的...
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) 注意:注册函数后,并不是马上执行该函数,而是等待信号来时再执行该函数。因此需要关注信号注册函数的位置,在该位置以后才能捕捉该信号。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com