Я пытаюсь использовать setitimer для отправки SIGALRM, который, в свою очередь, вызывает мою функцию-обработчик для печати на стандартный вывод.Я часами рыщу по интернету, и просто нет четких указаний на то, как следует использовать сетитимер.Я пробовал разные комбинации, но ни одна из них не работает.В моем коде я использую сокеты и pthreads, но я не думаю, что это действительно имеет отношение к проблеме, так как я пытаюсь установить будильник с помощью сигнала, который в любом случае остановит все потоки, поэтому я оставлю этот код дляsimplicity.
void handle_alarm(int sig){
printf("Printing Info\n");
}
int main(int argc, char**argv){
struct itimerval it_val;
signal(SIGALRM, handle_alarm);
it_val.it_value.tv_sec = 1;
it_val.it_value.tv_usec = 1000000;
it_val.it_interval = it_val.it_value;
setitimer(ITIMER_REAL, &it_val, NULL);
while(1){}
return 0;
}
Он должен просто печатать на терминал каждую секунду, но это не так.Кто-нибудь может дать мне какой-нибудь совет?