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

📄 main.cpp

📁 ME AND YOU...YOU AND MEE
💻 CPP
字号:
   #include <iostream>
#include <stdlib.h>
 #include <signal.h>
 #include <sys/time.h>
 
 int count = 0;
 int in=0;
  int flag[5]={0};
 
using std::cout;

 
void timer_handler (int);
void sighand(int);
int func1();
int func2();
int func3();
int func4();
int func5();
void maan();
int selector(int);
int (*arptr[5])()={&func1,&func2,&func3,&func4,&func5};

int main()
{
 
  maan();
  

  return 0;
}

int func1()
{
  
   cout<<"M FUN 1";
   }

int func2()
{
   
   cout<<"M FUN 2";
   
}
int func3()
{
   
  cout<<"M FUN 3";
   

   
}
int func4()
{
   
   cout<<"M FUN 4";
}

int func5()
{
   
   cout<<"M FUN 5";
   
   
}


int selector(int index)
{
  if(flag[index]==0)
  {
  return 1;
  }
}

void sighand(int signum)
{
cout<<"flag"<<flag[in];
   flag[in]=0;
in++;
   flag[in]=1;
   cout<<"flag"<<flag[in];


}


void timer_handler (int signum)
{


 printf ("timer expired %d times\n", ++count);
 if(in==5)
 {
   in=0;
 }
 
   flag[in]=1;
   if(count%5==0)
   {
   
   for(int k=0;k<5;k++)
   {
      

     if(flag[k]==1)
     {
       
       arptr[k]();
     }
   }
   int sel=selector(in);
   flag[in]=0;
 in++;
 flag[in]=1;
   }

}



void maan()
{

   struct sigaction sa;
    struct itimerval timer;
   
    /* Install timer_handler as the signal handler for SIGVTALRM. */
    memset (&sa, 0, sizeof (sa));
    sa.sa_handler = &timer_handler;
    sigaction (SIGVTALRM, &sa, NULL);

    /* Configure the timer to expire after 250 msec... */
    timer.it_value.tv_sec = 0;
    timer.it_value.tv_usec = 250000;

    /* ... and every 250 msec after that. */
    timer.it_interval.tv_sec = 0;
    timer.it_interval.tv_usec = 250000;

    /* Start a virtual timer. It counts down whenever this process is
      executing. */
    setitimer (ITIMER_VIRTUAL, &timer, NULL);
   
   while(1);
  while(1);
}  

⌨️ 快捷键说明

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