⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 11-3.c

📁 这是Linux应用开发技术详解上的源码
💻 C
字号:
#include<unistd.h>
  #include<signal.h>
  #include<sys/types.h>
  #include<sys/wait.h>

  int main(int argc,char **argv) 
  { 
   double y; 
   sigset_t intmask; 
  int i,repeat_factor; 
  if(argc!=2) 
  { 
     fprintf(stderr,"Usage:%s repeat_factor\n\a",argv[0]); 
     exit(1); 
  } 
  if((repeat_factor=atoi(argv[1]))<1)
   {
     repeat_factor=10; 
   }
   sigemptyset(&intmask); /* 将信号集合设置为空 */ 
   sigaddset(&intmask,SIGINT); /* 加入中断 Ctrl+C 信号*/ 
   while(1) 
   { 
    /*阻塞信号,我们不希望保存原来的集合,所以参数为NULL*/ 
    sigprocmask(SIG_BLOCK,&intmask,NULL); 
   fprintf(stderr,"SIGINT signal blocked\n"); 
    for(i= 0; i<100; i++){ 
    fprintf(stderr,"Blocked calculation is finished\n");
    }   
   /* 取消阻塞 */ 
   sigprocmask(SIG_UNBLOCK,&intmask,NULL); 
  fprintf(stderr,"SIGINT signal unblocked\n"); 
   for(i=0; i<100; i++){ 
    fprintf(stderr,"Unblocked calculation is finished\n"); 
   } 
   exit(0); 
     }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -