1.源码实现
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
int main()
{
//声明信号集
sigset_t sigs;
int sum = 0;
int i;
//清空信号集
sigemptyset(&sigs);
//添加信号到信号集
sigaddset(&sigs, SIGINT);
//屏蔽信号
sigprocmask(SIG_BLOCK, &sigs, 0);
for(i=0; i<=10; i++)
{
sum += i;
printf("i=%d\n", i);
sleep(i);
}
printf("sum=%d\n", sum);
//检出屏蔽
sigprocmask(SIG_UNBLOCK, &sigs, 0);
printf("over!\n");
return 0;
}
2.编译源码
$ gcc -o example example.c
3.运行及其结果
$ ./example
i=0
i=1
i=2
i=3
i=4
^Ci=5
i=6
i=7
i=8
i=9
i=10
sum=55
网友评论