----------------------------------------------------------------------
#include <signal.h>
#include <stdio.h>
#include <sys/time.h>
void
Stop ()
{
printf ("All done!\n");
exit (0);
}
int
main()
{
struct itimerval itv;
int i;
int old;
signal(SIGVTALRM, Stop);
itv.it_value.tv_sec = 2;
itv.it_value.tv_usec = 0;
setitimer(ITIMER_VIRTUAL, &itv, NULL);
old = 2;
for (i = 0; ; i++)
{
struct itimerval iv;
getitimer(ITIMER_VIRTUAL, &iv);
if (iv.it_value.tv_sec != old)
{
old = iv.it_value.tv_sec;
printf("%d\n", old);
}
if (old == 0 && iv.it_value.tv_usec == 0)
{
printf("we should be done!\n");
}
}
}