2

助けてください。タイマーを作成しました。タイマーの実行中に特定のタスクを実行したいと考えています。しかし、私のコードでは、タイマーの実行中にタスクを実行できません。タイマーが実行されているときにのみスリープします。私のコードは

#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();
}
4

0 に答える 0