UNIX 信号和用途

Unix信号量在我们的使用中也经常用到,今天,我们就来学习下Unix信号量的知识。信号是一种软中断,是一种处理异步事件的方法。一般来说,操作系统都支持许多信号。尤其是UNIX,比较重要应用程序一般都会处理信号。 

UNIX定义了许多信号,比如SIGINT表示中断字符信号,也就是Ctrl+C的信号,SIGBUS表示硬件故障的信号;SIGCHLD表示子进程状态改变信号;SIGKILL表示终止程序运行的信号,等等。信号量编程是UNIX下非常重要的一种技术。 

Unix信号量也可以在文件/usr/include/sys/signal.h中查看 
#define SIGHUP  进程由於控制终端死去或者控制终端发出起命令 
#define SIGINT  键盘中断所产生的信号 
#define SIGQUIT  键盘终止 
#define SIGILL  非法的指令 
#define SIGTRAP   进程遇到一个追踪(trace)或者是一个中断嵌套 
#define SIGABRT  由abort系统调用所产生的中断信号 
#define SIGIOT  类似於SIGABRT 
#define SIGBUS   进程试图使用不合理的记忆体 
#define SIGFPE  浮点异常 
#define SIGKILL  KILL 
#define SIGUSR1  用户自定义 
#define SIGSEGV  段错误 
#define SIGUSR2  用户自定义 
#define SIGPIPE  管道操作时没有读只写 
#define SIGALRM 由alarm系统调用产生的timer时钟信号 
#define SIGTERM 收到终端信号的进程 
#define SIGSTKFLT 堆叠错误 
#define SIGCHLD  子进程向父进程发出的子进程已经stop或者终止的信号 
#define SIGCONT  继续运行的信号 
#define SIGSTOP  stop 
#define SIGTSTP  键盘所产生的stop信号 
#define SIGTTIN   当运行在後状态时却需要读取stdin的资料 
#define SIGTTOU   当运行在後状态时却需要写向stdout 
#define SIGURG   socket的紧急情况 
#define SIGXCPU  进程超额使用CPU分配的时间 
#define SIGXFSZ  进程使用了超出系统规定文件长度的文件 
#define SIGVTALRM  内部的alarm时钟过期 
#define SIGPROF  在一个程式段中描绘时钟集过期 
#define SIGWINCH 终端视窗的改变 
#define SIGIO 非同步IO 
#define SIGPOLL  SIGIO pollable事件发生 

通过结合trap命令使用:trap <command-list>  <signal-list> 

以上这些Unix信号量的知识,希望大家能够记住,方便以后我们的使用。
 

原文地址:https://www.cnblogs.com/caly/p/2231241.html