使用sigaction 函数:signal 函数的使用方法简单,但并不属于POSIX 标准,在各类UNIX 平台上的实现不尽相同,因此其用途受到了一定的限制。为了每隔2秒重复产生SIGALRM信号,在信号处理器中调用alarm函数。若向该函数传递0 0 0 ,则之前对SIGALRM 信号的预约将取消。常数SIGCHLD定义了子进程终止的情况,应成为signal函数的首先个参数。
如果调用该函数的同时向它传递一个正整型参数,相应时间后(以秒为单位)将产生SIGALRM 信号。Linux系统中常见的信号如SIGABRT(程序异常终止)、SIGALRM(定时器超时)、SIGBUS(总线错误)和SIGCHLD(子进程状态改变)等,每个信号都有其特定含义和默认处理方式,可以通过sigaction函数进行自定义处理。为了等待发生SIGCHLD信号,使父进程共暂停5次,每次间隔5秒。