一.signal分析
在POSIX中信号的处理:
#include
void (*signal(int signo, void (*func)(int)))(int)
{
struct sigaction act, oact;
act.sa_handler = func; // siaction结构的sa_handler成员位置为函数func
sigemptyset(&act.sa_mask); //该信号集设置为空集。代表在该信号处理函数不堵塞任何信号。POSIX保证被捕捉的信号在其信号处理函数运行期间总是堵塞
act.sa_flags = 0;
if(signo == SIGALRM){ //此操作增加的函数的可移植性
#if SA_INTERRUPT
act.sa_flags |= SA_INTERRUPT; //SunOS 4.x
#end if
}else{
#if SA_RESTART
act.sa_flags |= SA_RESTART; //SVR4, 4.4BSD
#end if
}
if(sigaction(signo, &act, &oact)< 0) //struct sigaction{
// void(*sa_handler)(int);
// sigset_t sa_mask;
// int s