set_ticker.c 908 B

1234567891011121314151617181920212223242526272829303132
  1. #include <stdio.h>
  2. #include <sys/time.h>
  3. #include <signal.h>
  4. /*
  5. * set_ticker.c
  6. * set_ticker( number_of_milliseconds )
  7. * arranges for the interval timer to issue
  8. * SIGALRM's at regular intervals
  9. * returns -1 on error, 0 for ok
  10. *
  11. * arg in milliseconds, converted into micro seoncds
  12. */
  13. set_ticker( n_msecs )
  14. {
  15. struct itimerval new_timeset;
  16. long n_sec, n_usecs;
  17. n_sec = n_msecs / 1000 ;
  18. n_usecs = ( n_msecs % 1000 ) * 1000L ;
  19. new_timeset.it_interval.tv_sec = n_sec; /* set reload */
  20. new_timeset.it_interval.tv_usec = n_usecs; /* new ticker value */
  21. new_timeset.it_value.tv_sec = n_sec ; /* store this */
  22. new_timeset.it_value.tv_usec = n_usecs ; /* and this */
  23. return setitimer(ITIMER_REAL, &new_timeset, NULL);
  24. }