Unix信号量中基础知识介绍

原文:http://os.51cto.com/art/201004/195920.htm

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信号量的知识,希望大家能够记住,方便以后我们的使用。

原文:http://os.51cto.com/art/201004/195920.htm

更多Unix文章见 http://os.51cto.com/col/522/

你可能感兴趣的:(unix)