struct sigaction { void (*sa_handler)(int); //SIG_DEF,SIG_IGN,或者函数 void (*sa_sigaction)(int, siginfo_t *, void *); //新的信号处理函数 sigset_t sa_mask; //当信号处理时须要被阻塞的其余信号集 int sa_flags; //信号处理机制 void (*sa_restorer)(void); };
阻塞信号有个两个地点,一个是信号处理者一级阻塞信号(用sigaction()),第二个是在进程一级阻塞信号(用sigprocmask())。sigprocmask()实际就是修改当前信号挡板的设置。异步
sigset_t是信号集类型,基本函数以下:函数
向指定进程发送指定信号---kill()rest
异步IO:Unix有2个异步输入系统。一种是当输入就绪时发送信号,另外一种是系统当输入被读入时发送信号。UCB中经过设置文件描述块的O_ASYNC位来实现第一种,第二种是POSIX标准,调用aio_read。code