助けてください。タイマーを作成しました。タイマーの実行中に特定のタスクを実行したいと考えています。しかし、私のコードでは、タイマーの実行中にタスクを実行できません。タイマーが実行されているときにのみスリープします。私のコードは
#include<stdio.h>
#include<unistd.h>
#include<sys/time.h>
#include<signal.h>
#include <time.h>
#define INTERVAL 10
void timerhandler(int signum)
{
printf("\ni m manoj doing some specila task\n");
}
int timer()
{
int i;
struct itimerval val;
struct sigaction action;
sigemptyset(&action.sa_mask);
action.sa_handler=&timerhandler;
action.sa_flags=SA_RESTART;
if(sigaction(SIGALRM,&action,NULL)==-1)
{
perror("sigaction");
return 1;
}
val.it_interval.tv_sec = 0;
val.it_interval.tv_usec = 0;
val.it_value.tv_sec = 3;
val.it_value.tv_usec = 0;
if(setitimer(ITIMER_REAL,&val,0)==-1)
perror("alarm");
else
for(;;)
{
Sleep(10);
printf("timer val is %d", &val.it_value.tv_sec );
printf("\ni m manoj doing normal task\n");
return 0;
}
return 0;
}
int main()
{
timer();
}