necesita programas que ilustran el uso del settimer y las funciones de alarma en GNU C

¿Alguien puede ilustrar el uso del settimer o la función de alarma en gnu C, con algunasejemplos de programas ,Por favor ?

Tengo un programa que continuamente procesa algunos datos, y necesito configurar un temporizador / alarma que suena cada t segundos, en respuesta a lo cual, necesito almacenar los datos procesados ​​en un archivo. Esta escritura del archivo debe ser asíncrona <es decir, el procesamiento de datos y la escritura del archivo no deben esperar el uno al otro>. Revisé las páginas de la biblioteca GNU C, pero no pude entender mucho ...

[EDITAR]

Tengo 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;

}

Pero parece que no puedo hacer nada mientras el temporizador está encendido. ¿Qué debo modificar para satisfacer mis necesidades? Por favor sugiero ... [/ EDIT]

Respuestas a la pregunta(1)

Su respuesta a la pregunta