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