Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65750
  • 博文数量: 19
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 225
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-26 19:05
文章分类
文章存档

2011年(2)

2010年(3)

2009年(11)

2008年(3)

我的朋友

分类: LINUX

2009-05-19 09:51:30

                             UNIX中重要的33个信号量
 软中断号  信号名称  功能  软中断号  信号名称  功能
   1  SIGUP  远程电话挂起    17  SIGUSR2  用户定义2
   2  SIGINT  输入Delete    18  SIGCLD  子进程消亡
   3  SIGQUIT  输入QUIT    19  SIGPWR  电源失效
   4  SIGILL  非法指令    20  SIGWINCH  窗口变换(AIX)
   5  SIGTRAP  断电/跟踪    21  SIGURG  紧急socket(AIX)
   6  SIGIOT  IOT指令    22  SIGPOLL  I/O流事件(AIX)
   7  SIGEMT  EMT指令    23  SIGSTOP  信号停止
   8  SIGFPE  浮点溢出    24  SIGTSTP  用户信号停止
   9  SIGKILL  强行终止进程    25  SIGCONT  忽略信号继续
   10  SIGBUS  总线超时    26  SIGTTIN  停止tty输入
   11  SIGSEGV  段违例    27  SIGTTOU  停止tty输出
   12  SIGSYS  系统调用错    28  SIGVTALRM  虚拟计时器过期
   13  SIGPIPE  PIPE文件只有写而没读者    29  SIGPROF  整体时序过期
   14  SIGALRM  报警信号    30  SIGXCPU  超处理器时间限制
   15  SIGTERM  终止信号(终止)    31  SIGXPSZ  超文件大小限制
   16  SIGUSR1  用户定义1    32  SIGWAITING  进程LWP被阻塞
         33  SIGLWP  线程库使用信号
 注意:表中1~19软中断号System V中提供的,从20~22师AIX系统新增的,23~33是新版UNIX操作系统扩充的软中断信号。
1. 信号的作用:
signal是用于一组相互关联的进程间的通信。
2. 信号的发送:
status = kill(pid, sig);
在shell中也可以用命令向进程发送信号,% kill [-sig] pid
3. 信号的接收和处理:
UNIX中用signal接收一种指定类型的信号,并对这种信号做特殊的处理,如下:
#include
int sig;
int func();
int (*funcp)();
......
funcp = signal(sig, func());
......
sig为系统类型,但是除了SIGKILL,因为SIGKILL信号是强制中断信号,进程不能捕获和处理,func是指定进程收到信号后执行的动作函数。动作函数的取值范围有三种:
SIG-IGN: 表示进程运行中接受到的指定信号时,采用忽略(不理睬)的方式对待;
SIG-DFL: 恢复对信号的默认处理。
函数名: 对接收到的信号处理可以用一个整数地址形式来表示一个执行函数。
使用系统调用signal的返回值是funcp,它是一个指向int型的函数指针。如果signal调用正确,funcp得到的是处理sig信号设定的函数地址(>0),若系统调用失败,则funcp = -1.
阅读(2514) | 评论(4) | 转发(0) |
给主人留下些什么吧!~~

xcdai2009-07-05 09:28:55

信号和信号量是由区别的,信号是处理异步时间的方法,是posix的信号。是由硬件或软件触发,再由操作系统内核发给应用程序的中断形式。 信号量是semaphore的一种进程同步机制,是POSIX进程通信的一种方式,在上面定义了一些操作原语。

xcdai2009-07-05 09:28:55

信号和信号量是由区别的,信号是处理异步时间的方法,是posix的信号。是由硬件或软件触发,再由操作系统内核发给应用程序的中断形式。 信号量是semaphore的一种进程同步机制,是POSIX进程通信的一种方式,在上面定义了一些操作原语。

chinaunix网友2009-06-08 01:05:13

信号量和信号还是有差别的吧

chinaunix网友2009-06-08 01:05:13

信号量和信号还是有差别的吧