Chinaunix首页 | 论坛 | 博客
  • 博客访问: 124261
  • 博文数量: 23
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 329
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-04 13:23
个人简介

开心过好每天!

文章分类

全部博文(23)

文章存档

2013年(23)

分类: LINUX

2013-08-05 18:46:50

信号是进程间通信机制中唯一的异步通信机制,是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号可类比处理器收到一个中断请求。

常见信号:

SIGKILL:杀死进程,不能忽略

SIGSTOP:停止一个进程,不能忽略

SIGCHILD:当子进程状态发生改变,内核会向父进程发送此信号,进程默认忽略这个信号

SIGINT:ctrl+c

SIGPIPE:对管道的操作的时候,如果读端不存在,写管道会发送此信号

信号处理方式:

忽略信号 signal(signum,SIG_IGN);

捕捉信号:signal(signum,handler);

默认操作signal(signum,SIG_DFL);

用到的函数:

int kill(pid_t pid , int sigNum);//给指定的进程发送信号

int raise(int sigNum);//给自己发送信号

unsigned int alarm(unsigned int seconds);//设置定时器,定时时间到,内核向进程发送SIGALARM

int pause(void);//调用次函数回引起堵塞,当信号来临,并且设置了捕捉信号是,会将其唤醒,从pause后面开始执行

阅读(1935) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~