Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sigvec(2)

gettimeofday(2)



getitimer(2)                  4 BSD                  getitimer(2)



NAME
     getitimer, setitimer - get/set value of interval timer

SYNOPSIS
     #include <sys/time.h>

     int getitimer (which, value)
     int which;
     struct itimerval *value;

     int setitimer (which, value, ovalue)
     int which;
     struct itimerval *value, *ovalue;

DESCRIPTION
     The system provides each process with three interval timers,
     defined in <sys/time.h> as

          ITIMER_REAL    real time intervals
          ITIMER_VIRTUAL virtual time intervals
          ITIMER_PROF    user and system virtual time

     The getitimer call returns the current value for the timer
     specified in which, while the setitimer call sets the value
     of a timer (optionally returning the previous value of the
     timer).

     A timer value is defined by the itimerval structure, whose
     members are:

               struct    timeval it_interval;     /* timer interval */
               struct    timeval it_value;   /* current value */

     If it_value is non-zero, it indicates the time to the next
     timer expiration. If it_interval is non-zero, it specifies a
     value to be used in reloading it_value when the timer
     expires.  Setting it_value to 0 disables a timer.  Setting
     it_interval to 0 causes a timer to be disabled after its
     next expiration (assuming it_value is non-zero).

     Time values smaller than the resolution of the system clock
     are rounded up to this resolution

     The ITIMER_REAL timer decrements in real time.  A SIGALRM
     signal is delivered when this timer expires.

     The ITIMER_VIRTUAL timer decrements in process virtual time.
     It runs only when the process is executing.  A SIGVTALRM
     signal is delivered when it expires.

     The ITIMER_PROF timer decrements both in process virtual
     time and when the system is running on behalf of the



Page 1                        CX/UX Programmer's Reference Manual





getitimer(2)                  4 BSD                  getitimer(2)



     process.  It is designed to be used by interpreters in sta-
     tistically profiling the execution of interpreted programs.
     Each time the ITIMER_PROF timer expires, the SIGPROF signal
     is delivered.  Because this signal may interrupt in-progress
     system calls, programs using this timer must be prepared to
     restart interrupted system calls.

NOTES
     Three macros for manipulating time values are defined in <
     sys/time.h >.  Timerclear sets a time value to zero, timer-
     isset tests if a time value is non-zero, and timercmp com-
     pares two time values (beware that >= and <= do not work
     with this macro).

RETURN VALUE
     If the calls succeed, a value of 0 is returned.  If an error
     occurs, the value -1 is returned, and a more precise error
     code is placed in the global variable errno.

ERRORS
     The possible errors are:

     [EFAULT]       The value structure specified a bad address.

     [EINVAL]       A value structure specified a time was too
                    large to be handled.

SEE ALSO
     sigvec(2), gettimeofday(2)


























Page 2                        CX/UX Programmer's Reference Manual



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026