首页 > 其他 > 详细

linux编程基本知识

时间:2014-02-08 01:22:01      阅读:410      评论:0      收藏:0      [点我收藏+]

       上篇学习笔记3中处理函数signal(),只能处理单个信号。处理多个信号需要信号集函数组(signal set),将在sigprocmask()这样的函数使用这种数据类型。信号集函数组包括:创建函数集、登记信号集、检测信号集。


1.函数执行过程

bubuko.com,布布扣


2.创建信号集

bubuko.com,布布扣

意义分别为:

<1>初始化信号集合为空

<2>初始化信号集合为所有信号的集合

<3>将指定信号添加到信号集中

<4>从信号集中删除该信号

<5>查询信号是否在信号集中


3.登记信号集

bubuko.com,布布扣


4.实例代码 sigaction.c

#include <stdio.h> 
#include <sys/types.h> 
#include <stdlib.h>
#include <signal.h>

void func(int sig) 

{ 

printf("I get a signal!\n");

}

int main()

{   char buffer[100];

    struct sigaction act;
    act.sa_handler=func;
    sigemptyset(&act.sa_mask);
    act.sa_flags = 0;

    if(sigaction(SIGINT,&act, NULL) == -1) 
    { 
    printf("sigaction error exit now\n");
    exit(0);
    }

    printf("pid:%ld\n",(long)getpid());

    for(;;)
    {
    fgets(buffer,sizeof(buffer),stdin); 
    printf("buffer is:%s\n",buffer); 
    }

    return 0;

}






linux编程基本知识

原文:http://blog.csdn.net/ctxbloger/article/details/18971285

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!