歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

一步一步學Linux C:信號集及操作

在實際的應用中一個應用程序需要對多個信號進行處理,為了方便,linux系統引進了信號集的概念。信號集用多個信號組成的數據類型sigset_t.可用以下的系統調用設置信號集中所包含的數據。

1、常見信號及定義如圖:

2、sigset_t在linux2.6.39/include/asm-generic/signal.h中定義

  1. typedef struct {  
  2.   
  3.      unsignedlong sig[_NSIG_WORDS];  
  4.   
  5. } sigset_t;  

3、相應的系統調用函數:

  1. #include<signal.h>   
  2.   
  3. int sigemptyset(sigset_t *set);  
  4.   
  5. int sigfillset(sigset_t *set);  
  6.   
  7. int sigadd(sigset_t *set,int setnumber);  
  8.   
  9. int sigdelset(sigset_t *set,int setnumber);  

set表示信號集指針,setnumber表示信號。

sigemptyset用於將set指向的信號集設為空,即不包含任何信號。

sigfillset用於將set指向的信號集設為滿,即包含所有的信號。

sigaddset用於向信號集中添加信號。

sigdelset用於向信號集中刪除信號。

以上函數成功返回0,失敗返回-1 

4、另外,intsigsimember(const sigset_t set,int signumber),用於檢測signumber是否在set中,若屬於返回1,不是返回0.

Copyright © Linux教程網 All Rights Reserved