settimertest.c

来自「这是linux下的基础C编程代码。都是已经调试成功的」· C语言 代码 · 共 69 行

C
69
字号
#include <sys/time.h> 
#include <stdio.h>
#include <signal.h> 
#include <string.h>


char buffer[128];
char oldbuffer[128];
static int firsttimeread_flag=0;
static int test=0;

void readbuffer()
{
	if(test%10==0)
	{
       	strcpy(buffer,"hangfei");
	}
	else
	{
		strcpy(buffer,"feihang");
	}

	if(firsttimeread_flag==0)
		strcpy(buffer,oldbuffer);
	
	firsttimeread_flag=1;
	test++;

	if(test==400) 
	{
		test=0;
	}
}


void sigroutine(int signo)
{

    printf("Catch a signal -- SIGVTALRM \n");
    readbuffer();
	if((strcmp(buffer,oldbuffer))!=0)
	{
		printf("buffer change!\n");
		strcpy(oldbuffer,buffer);
	}
}

int main()

{
   
   struct itimerval value, ovalue, value2; //(1)
   signal(SIGVTALRM, sigroutine);

   value2.it_value.tv_sec = 0;

   value2.it_value.tv_usec = 2000;

   value2.it_interval.tv_sec = 0;

   value2.it_interval.tv_usec = 2000;

   setitimer(ITIMER_VIRTUAL, &value2, &ovalue);

   while(1)
   {
	   ;
   }
}

⌨️ 快捷键说明

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