摘要: 1、signal函数 Unix系统的信号机制最简单的接口是signal函数,函数原型如下: #include <signal.h> typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); signum表示信号名称,handler取值常量SIG_IGN(忽略此信号)、常量SIG_DFL(执行默认动作)或者接到此信号后要调用的函数的地址(调用信号处理程序)。写个程序练习一下signal函数的使用,程序的功能是捕获子进程退出。程序如下:View Code 1 #i. 阅读全文
posted @ 2012-12-17 17:01 Rabbit_Dale 阅读(1057) 评论(0) 推荐(2) 编辑
摘要: 信号时软中断,很多比较重要的应用程序都需要处理信号,信号提供了一种处理异步事件的方法。每个信号都一个名字,以SIG开头,在<signal.h>头文件中定义信号类型,都是正整数(信号编号)。 产生信号的条件:(1)当用户按某些终端键时,引发终端产生的信号。(2)硬件异常产生信号。(3)进程调用kill函数将信号发送给另外一个进程或进程组。(4)用户用kill命令将信号发送给其他进程。(5)检测到某种软件条件已经发送,并将其通知有关进程时候产生信号。 内核在信号出现时候处理方式有:(1)忽略此信号,(2)铺捉信号,(3)执行系统默认动作。Unix系统信号如下:其中SIGKILL和SIG 阅读全文
posted @ 2012-12-17 16:33 Rabbit_Dale 阅读(936) 评论(0) 推荐(1) 编辑
摘要: 本章看后给人似懂非懂的感觉,主要是不知道实际当中如何去使用。通过前面几章的学习,每个进程都有一个父进程,当子进程终止时,父进程得到通知并取得子进程的退出状态。先将本章基本的知识点总结如下,日后再看时候好好总结一下。1、终端登录 介绍了有终端登录Unix系统的过程。通过init进程读文件/etc/ttys,fork一个子进程调用exec执行getty程序进行登录,当用户输入完用户名后,getty的工作完成了,然后调用login程序,类似execle("/bin/login","login","-p",username,(char *)0 阅读全文
posted @ 2012-12-17 12:18 Rabbit_Dale 阅读(916) 评论(0) 推荐(0) 编辑