快速掌握Linux(7)(信号)
2026/9/2 17:36:27 网站建设 项目流程

3)信号

信号:进程间通知机制(不携带数据)---异步通知机制

信号:软中断

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) 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) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5

40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10

45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14

49) SIGRTMIN+15 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) SIGRTMAX

2)SIGINT: ctrl + c

让一个进程被打断

3)SIGQUIT: ctrl + \

让一个进程结束

9)SIGKILL:

强制让一个进程结束

11)SIGSEGV:

让一个进程结束(段错误)

13)SIGPIPE:

让一个进程结束(管道破裂)

14)SIGALRM:

让一个进程结束(定时时间到达)

17)SIGCHLD:

子进程结束时发送给父进程

18)SIGCONT:

让停止态的进程继续执行

19)SIGSTOP:

让运行态的进程进入停止态(暂停)强制停止

20)SIGTSTP:

ctrl + z 让进程进入暂停态,后台进程

来自终端的停止信号

10 SIGUSR1

12 SIGUSR2

专门预留给程序员使用的未定义信号。

(1)注册信号

信号处理方式:

1.忽略:不处理

2.缺省:按照操作系统默认方式处理

3.捕获:按照自定义方式处理

sighandler_t signal(int signum, sighandler_t handler);

功能:注册一个信号

参数:

signum:要注册的信号的编号

handler:对信号的处理方式

SIG_IGN :按忽略方式处理

SIG_DFL:按照缺省方式处理

自定义的函数:按照捕获方式处理

返回值:

成功:handler

失败:SIG_ERR

注意:

1.如果信号不注册,自动按照默认(缺省)方式处理;大多数信号默认处理方式是结束一个进程。

2.信号尽量早注册。

3.发送信号

kill();*

int kill(pid_t pid, int sig);

功能:给进程发送一个信号

参数:

pid:接收信号的进程

sig:信号的编号

返回值:

成功:0

失败:-1

(2)pause

void pause(void);

功能:挂起一个进程(让进程进入休眠)

可以通过一个信号唤醒pause挂起的进程,但是这个信号必须被捕获。

(3)alarm

unsigned int alarm(unsigned int seconds);

功能:定时若干秒之后发送一个SIGALRM的信号

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询