歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 一步一步學Linux C:信號集及操作

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

日期:2017/3/1 10:26:14   编辑:Linux編程

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

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

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

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

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

  1. #include<signal.h>
  2. int sigemptyset(sigset_t *set);
  3. int sigfillset(sigset_t *set);
  4. int sigadd(sigset_t *set,int setnumber);
  5. 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