Linux信号SIGNAL详解
来源:互联网 发布:jdk 7u79 windows x32 编辑:程序博客网 时间:2024/06/03 18:00
1.signal函数的使用
#include <signal.h>void (*signal(int signum, void (*handler)(int)))(int); 参数1:表示捕获什么信号,参数2:表示捕获信号后的处理方式。一般有SIG_ERR(错误返回),SIG_IGN(忽略该信号)、SIG_DFL(按系统默认的方式处理)以及func_handle(用户自定义方式)几种处理方式;
2.信号列表(参数1可使用的值)
SIGHUP 终止进程 终端线路挂断。*若关闭终端,希望程序继续运行,则忽略该信号*SIGINT 终止进程 中断进程,一般由CTRL+C产生SIGQUIT 建立CORE文件终止进程,并且生成core文件,一般由CTRL+|产生SIGILL 建立CORE文件 非法指令SIGTRAP 建立CORE文件 跟踪自陷SIGBUS 建立CORE文件 总线错误SIGSEGV 建立CORE文件 段非法错误SIGFPE 建立CORE文件 浮点异常SIGIOT 建立CORE文件 执行I/O自陷SIGKILL 终止进程 杀死进程(一般该信号不能忽略)SIGPIPE 终止进程 向一个没有读进程的管道写数据,*若希望写失败能重新尝试时,则忽略该信号*SIGALRM 终止进程 计时器到时SIGTERM 终止进程 软件终止信号SIGSTOP 停止进程 非终端来的停止信号SIGTSTP 停止进程 终端来的停止信号SIGCONT 忽略信号 继续执行一个停止的进程SIGURG 忽略信号 I/O紧急信号SIGIO 忽略信号 描述符上可以进行I/OSIGCHLD 忽略信号 当子进程停止或退出时通知父进程SIGTTOU 停止进程 后台进程写终端SIGTTIN 停止进程 后台进程读终端SIGXCPU 终止进程 CPU时限超时SIGXFSZ 终止进程 文件长度过长SIGWINCH 忽略信号 窗口大小发生变化,*若需要UI显示,则需要处理该信号*SIGPROF 终止进程 统计分布图用计时器到时SIGUSR1 终止进程 用户定义信号1SIGUSR2 终止进程 用户定义信号2SIGVTALRM 终止进程 虚拟计时器到时
附录:
define SIG_ERR ((__sighandler_t) -1) /* Error return. */define SIG_DFL ((__sighandler_t) 0) /* Default action. */define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */#ifdef __USE_UNIX98 define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask. */#endif/* Signals. */#define SIGHUP 1 /* Hangup (POSIX). */#define SIGINT 2 /* Interrupt (ANSI). */#define SIGQUIT 3 /* Quit (POSIX). */#define SIGILL 4 /* Illegal instruction (ANSI). */#define SIGTRAP 5 /* Trace trap (POSIX). */#define SIGABRT 6 /* Abort (ANSI). */#define SIGIOT 6 /* IOT trap (4.2 BSD). */#define SIGBUS 7 /* BUS error (4.2 BSD). */#define SIGFPE 8 /* Floating-point exception (ANSI). */#define SIGKILL 9 /* Kill, unblockable (POSIX). */#define SIGUSR1 10 /* User-defined signal 1 (POSIX). */#define SIGSEGV 11 /* Segmentation violation (ANSI). */#define SIGUSR2 12 /* User-defined signal 2 (POSIX). */#define SIGPIPE 13 /* Broken pipe (POSIX). */#define SIGALRM 14 /* Alarm clock (POSIX). */#define SIGTERM 15 /* Termination (ANSI). */#define SIGSTKFLT 16 /* Stack fault. */#define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */#define SIGCHLD 17 /* Child status has changed (POSIX). */#define SIGCONT 18 /* Continue (POSIX). */#define SIGSTOP 19 /* Stop, unblockable (POSIX). */#define SIGTSTP 20 /* Keyboard stop (POSIX). */#define SIGTTIN 21 /* Background read from tty (POSIX). */#define SIGTTOU 22 /* Background write to tty (POSIX). */#define SIGURG 23 /* Urgent condition on socket (4.2 BSD). */#define SIGXCPU 24 /* CPU limit exceeded (4.2 BSD). */#define SIGXFSZ 25 /* File size limit exceeded (4.2 BSD). */#define SIGVTALRM 26 /* Virtual alarm clock (4.2 BSD). */#define SIGPROF 27 /* Profiling alarm clock (4.2 BSD). */#define SIGWINCH 28 /* Window size change (4.3 BSD, Sun). */#define SIGPOLL SIGIO /* Pollable event occurred (System V). */#define SIGIO 29 /* I/O now possible (4.2 BSD). */#define SIGPWR 30 /* Power failure restart (System V). */#define SIGSYS 31 /* Bad system call. */#define SIGUNUSED 31 #define _NSIG 65 /* Biggest signal number + 1 (including real-time signals). */#define SIGRTMIN (__libc_current_sigrtmin ())#define SIGRTMAX (__libc_current_sigrtmax ())/* These are the hard limits of the kernel. These values should not be used directly at user level. */#define __SIGRTMIN 32#define __SIGRTMAX (_NSIG - 1)
0 0
- Linux信号SIGNAL详解
- linux Signal信号详解
- Linux Signal信号详解
- LINUX SIGNAL 信号标志详解
- LINUX SIGNAL信号标志详解
- LINUX SIGNAL信号标志详解
- LINUX SIGNAL信号标志详解
- Linux 信号详解一(signal函数)
- linux信号 linux signal
- signal信号详解
- signal信号详解
- Linux下Signal信号
- Linux下Signal信号
- LINUX-信号SIGNAL
- LINUX-信号SIGNAL
- linux信号机制signal
- Linux信号(Signal)处理
- LINUX-信号SIGNAL
- [LeetCode]--39. Combination Sum
- 《Groovy程序设计》读书笔记之第一部分 groovy起步
- 匹配每一行以数字开头和以数字结尾的文本
- 《Groovy程序设计》读书笔记之第二部分 面向Java开发者的Groovy(上)
- android studio中gradle更新办法
- Linux信号SIGNAL详解
- usbview vs2015编译错误汇总
- AppWidget源码分析(2)---updateAppWidget过程分析.md
- C++的委托实现 笔记
- FZU 2141 Sub-Bipartite Graph
- HDU5795 A Simple Nim sg函数
- 订餐系统:过去、现在、将来
- android替换图片包错:AAPT err(Facade for ): libpng error: Not a PNG file
- iOS分割线的操作方式