precisa de programas que ilustrem o uso das funções settimer e alarme no GNU C

Alguém pode ilustrar o uso da função settimer ou alarme no gnu C, com algumasexemplos de programas ,por favor ?

Eu tenho um programa que processa continuamente alguns dados e preciso definir um timer / alarme que dispara a cada t segundos, em resposta ao qual preciso armazenar os dados processados em um arquivo. Essa gravação de arquivo deve ser assíncrona <ou seja, o processamento de dados e a gravação de arquivos não devem esperar um pelo outro>. Examinei as páginas da biblioteca GNU C, mas não conseguia entender muito ..

[EDITAR]

Eu recebi este programa:

#include <stdio.h>
#include <signal.h>
#include <sys/time.h>

#define INTERVAL 1

int howmany = 0;

void alarm_wakeup (int i)
{
   struct itimerval tout_val;

   signal(SIGALRM,alarm_wakeup);

   howmany += INTERVAL;

   printf("\n%d sec up partner, Wakeup!!!\n",howmany);
   tout_val.it_interval.tv_sec = 0;
   tout_val.it_interval.tv_usec = 0;
   tout_val.it_value.tv_sec = INTERVAL; /* 10 seconds timer */
   tout_val.it_value.tv_usec = 0;

   setitimer(ITIMER_REAL, &tout_val,0);

}

void exit_func (int i)
{
    signal(SIGINT,exit_func);
    printf("\nBye Bye!!!\n");
    exit(0);
}

int main ()
{
  struct itimerval tout_val;

  tout_val.it_interval.tv_sec = 0;
  tout_val.it_interval.tv_usec = 0;
  tout_val.it_value.tv_sec = INTERVAL; /* 10 seconds timer */
  tout_val.it_value.tv_usec = 0;
  setitimer(ITIMER_REAL, &tout_val,0);

  signal(SIGALRM,alarm_wakeup); /* set the Alarm signal capture */
  signal(SIGINT,exit_func);

  while (1)
  {
    //printf("!");
  }

  return 0;

}

Mas parece que não posso fazer nada enquanto o cronômetro está ligado. O que devo modificar para atender às minhas necessidades? Pl suger .. [/ EDIT]

questionAnswers(1)

yourAnswerToTheQuestion