zoukankan      html  css  js  c++  java
  • 信号signal编号及意义及一般处理

    SIGQUIT:停止

    SIGILL:illegal instruction

    SIGABRT:Abort

    SIGFPE:Float point exception

    SIGPIPE:Broken pipe

    SIGBUS:总线错误(访问mem)

    SIGSEGV:段错误

    一般情况下,程序应对上述信号进行处理,一方面探测程序bug,另一方面防止一些异常信号促使程序不能正常运行。

    信号处理

    • linux对每种信号都规定了默认动作,具体可参考man 7 signal
    • SIGCHLD 忽略(注意:需要注意的是,虽然进程对于 `SIGCHLD`的默认动作是忽略,但是还是显示写出来,才能有效(不显示写出来无效)signal(SIGCHLD, SIG_IGN),这样子进程直接会退出,不会变成僵尸。)
    • 实时信号结束进程。
    • 如果不想程序采用默认动作处理进程,需要捕捉函数(为想要特殊处理的函数指定信号处理函数)。
    • 如发生SIGALARM或SIGPIPE,进行超时处理即可,不必终止进程。此外若想发生信号时做特殊处理也应指定信号处理函数,如发生段错误时,提示用户等。
  • 相关阅读:
    团队作业---软件制作8
    团队作业---软件制作7
    团队绩效考核表
    团队报告
    团队作业---软件制作6
    团队作业---软件制作5
    团队作业---软件制作4
    团队作业---软件制作3
    团队作业---软件制作2
    第十周学习进度条
  • 原文地址:https://www.cnblogs.com/embedded-linux/p/5289950.html
Copyright © 2011-2022 走看看