信号——进程间最古老的通信方式之一

文章详细介绍了Linux系统中的信号机制,包括常见的信号类型如SIGHUP、SIGINT等,以及信号的5种默认处理动作。提到了如何查看core文件中的错误信息,利用函数如kill、raise、abort和setitimer进行信号操作,还讨论了alarm函数和定时器的使用。同时强调了SIGKILL和SIGSTOP信号的特殊性,它们不能被捕获、阻塞或注册。
摘要由CSDN通过智能技术生成

信号

在这里插入图片描述

在这里插入图片描述

  1. SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
  2. SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
  3. SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
  4. SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
  5. SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
  6. SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
  7. SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
  8. SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
  9. SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
  10. SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
  11. SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
  12. SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
  13. SIGRTMAX-1 64) SIGRTMAX
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

信号的5种默认处理动作

在这里插入图片描述

查看core文件中的错误信息

  1. 通过ulimit -a查看core文件大小
  2. 通过ulimit -c 1024修改core文件的大小为1024
  3. -g编译
  4. 运行程序
  5. 进入GDB调试
  6. 查看core文件
    在这里插入图片描述

常见函数

kill

在这里插入图片描述

raise

在这里插入图片描述
raise(sig) == kill(getpid(), sig)

abort

在这里插入图片描述
abort()== kill(getpid(), SIGABRT) == raise(SIGABRT)

alarm

在这里插入图片描述
在这里插入图片描述
该函数为非阻塞函数。
在这里插入图片描述

setitimer

循环定时
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
it_value:设置后多久后开始启动定时器
it_interval:定时器执行周期(定时结束到下一次定时开始)
在这里插入图片描述

总结

信号
8字节 long类型 64位 64个信号
前31个为常规信号,后面33个为实时信号
SIGKILL和SIGSTOP信号不能被捕捉,阻塞和注册,只能执行默认动作
信号有三种状态:产生、未决和递达。
信号的默认动作有五种:终止、暂停、继续、忽略(Ign)和Core。

发送信号的函数:kill、raise、abort
设置定时器函数:alarm、setitimer
一个进程有且只有唯一的一个定时器,到时产生SIGALRM信号,默认动作是终止当前进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猛笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值