signal里的一个SIGQUIT和SIGINT。根据apue的解释,ctl+c产生SIGINT,而ctl+\产生SIGQUIT。而经过实际实验,结果确实如此。
环境:ubuntu 12.4 + gcc 4.6.3
代码如下:
- #include <signal.h>
- #include <stdio.h>
- #include <unistd.h>
- static void sig_int(int signo);
- int main(){
-
- signal(SIGINT, sig_int);
- signal(SIGQUIT, sig_int);
- pause();
- pause();
-
- return 0;
- }
- static void sig_int(int signo){
- if(signo == SIGQUIT){
- printf(" sigquit not sigint\n");
- }
- if(signo == SIGINT){
- printf(" sigquit not sigint\n");
- }
- }
结果为:
^C sigint not sigquit
^\ sigquit not sigint
阅读(8234) | 评论(0) | 转发(0) |