[c]代码库
#include<stdio.h>
#include<stdlib.h>
#include<signal.h>
#include<unistd.h>
void handle(int s)
{
printf("外部用户中断处理...!\n");
sleep(3);
printf("外部用户中断处理完毕!\n");
}
main()
{
int i;
sigset_t sigs,sigt,sigu;
sigemptyset(&sigs);
sigemptyset(&sigt);
sigemptyset(&sigu);
sigaddset(&sigs,SIGINT);
signal(SIGINT,handle);
sigprocmask(SIG_BLOCK,&sigs,0);
for(i=0;i<10;i++)
{
printf("正在拷贝电影<%d>!\n",i);
sleep(5);
printf("电影<%d>拷贝完毕!\n",i);
sigpending(&sigu);//查询被屏蔽的信号
if(sigismember(&sigu,SIGINT))
{
sigsuspend(&sigt);//挂起处理外部中断
}
}
printf("所有电影拷贝完毕\n");
sigprocmask(SIG_UNBLOCK,&sigs,0);
printf("结束\n");
}
[代码运行效果截图]
初级程序员
by: 我的程序员之路 发表于:2013-05-05 20:09:59 顶(0) | 踩(0) 回复
C 只学了个皮毛,代码略懂,不过看这个Linux系统的界面还不错,哪个版本啊?
网友回复
回复德良 : Ubuntu,但不是最新的版本!
顶(0) 踩(0) 2013-05-06 10:31:11
回复评论