做网站花了三万块,什么网站可以做软件有哪些内容吗,wordpress的网站好用吗,微信怎么创建微信公众号1.信号的四要素 \qquad信号的名字#xff1b;信号的编号#xff1b;信号的默认处理动作#xff1b;信号的事件
2.信号相关命令 \qquad查看linux下的所有信号#xff1a;kill -l#xff1b;查看信号文档#xff1a;man 7 signal。一共有64个信号。linux常规信号一览表 1)…1.信号的四要素
\qquad信号的名字信号的编号信号的默认处理动作信号的事件
2.信号相关命令
\qquad查看linux下的所有信号kill -l查看信号文档man 7 signal。一共有64个信号。linux常规信号一览表 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN1 36) SIGRTMIN2 37) SIGRTMIN3
38) SIGRTMIN4 39) SIGRTMIN5 40) SIGRTMIN6 41) SIGRTMIN7 42) SIGRTMIN8
43) SIGRTMIN9 44) SIGRTMIN10 45) SIGRTMIN11 46) SIGRTMIN12 47) SIGRTMIN13
48) SIGRTMIN14 49) SIGRTMIN15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX3.信号的默认动作
动作意义Term终止进程lgn忽略信号Core终止进程生成core文件Stop停止暂停进程Cont继续运行进程
\qquad对于信号的处理有执行默认动作忽略和捕捉其中 9SIGKILL和 19SIGSTOP不允许捕捉和忽略只能执行默认动作。
4.信号的产生
4.1 终端按键产生信号
按键操作信号说明ctrl c2:SIGINT终止/中断INTinterruptctrl z20SIGTSTP暂停/停止Tterminal STP:stopctrl \3:SIGQUIT退出
4.2 硬件异常产生信号
异常操作信号除0操作8SIGFPE非法访问内存11SIGSEGV段错误总线错误7SIGBUS
4.3 kill函数或者kill命令产生信号
4.3.1 kill命令产生信号
kill -9 10624 // 给进程10624发送9SIGKILL信号 4.3.2 kill函数
\qquadint kill(pid_t pid,int sig) \qquad功能给指定进程发送指定信号不一定杀死 \qquad返回值成功返回0失败返回-1 \qquad参数第一个参数pid0发送信号给指定进程pid0发送信号给与调用kill函数进程属于同一进程组的所有进程pid0取|pid|发送给对应进程组pid-1发送给进程有权发送的系统中的所有进程。 第二个参数sig不推荐使用数字建议使用宏名 \qquad举例调用kill函数自己把自己杀死
#includestdio.h
#includeunistd.h
#includestdlib.h
#includesignal.hint main()
{int ret kill(getpid(),SIGKILL);if(ret-1){perror(kill error!);exit(1);}return 0;
}5.举例
\qquad创建5个子进程然后依次杀死
#includestdio.h
#include sys/types.h
#include unistd.h
#includeerrno.h
#includestdlib.h
#include sys/types.h
#include signal.hint main()
{pid_t pid,q[5];int i;for(i0;i5;i){pid fork();if(pid-1){perror(fork error!);exit(1);}else if(pid0){break;}q[i]pid;}if(i5){while(1){printf(i am child %d,getpid()%d\n,i,getpid());sleep(1);}}else{for(i0;i5;i){sleep(2);kill(q[i],SIGKILL);}}return 0;
}