4.3BSD-UWisc/man/cat2/getitimer.2

Compare this file to the similar file:
Show the results in this format:




GETITIMER(2)        UNIX Programmer's Manual         GETITIMER(2)



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

SYNOPSIS
     #include <sys/time.h>

     #define ITIMER_REAL      0    /* real time intervals */
     #define ITIMER_VIRTUAL   1    /* virtual time intervals */
     #define ITIMER_PROF      2    /* user and system virtual time */

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

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

DESCRIPTION
     The system provides each process with three interval timers,
     defined in <_s_y_s/_t_i_m_e._h>.  The _g_e_t_i_t_i_m_e_r call returns the
     current value for the timer specified in _w_h_i_c_h in the struc-
     ture at _v_a_l_u_e.  The _s_e_t_i_t_i_m_e_r call sets a timer to the
     specified _v_a_l_u_e (returning the previous value of the timer
     if _o_v_a_l_u_e is nonzero).

     A timer value is defined by the _i_t_i_m_e_r_v_a_l structure:

          struct itimerval {
               struct    timeval it_interval;     /* timer interval */
               struct    timeval it_value;   /* current value */
          };

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

     Time values smaller than the resolution of the system clock
     are rounded up to this resolution (on the VAX, 10 mil-
     liseconds).

     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.





Printed 12/27/86         August 26, 1985                        1






GETITIMER(2)        UNIX Programmer's Manual         GETITIMER(2)



     The ITIMER_PROF timer decrements both in process virtual
     time and when the system is running on behalf of the pro-
     cess.  It is designed to be used by interpreters in statist-
     ically 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
     <_s_y_s/_t_i_m_e._h>.  _T_i_m_e_r_c_l_e_a_r sets a time value to zero, _t_i_m_e_r_-
     _i_s_s_e_t tests if a time value is non-zero, and _t_i_m_e_r_c_m_p 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 _e_r_r_n_o.

ERRORS
     The possible errors are:

     [EFAULT]       The _v_a_l_u_e parameter specified a bad address.

     [EINVAL]       A _v_a_l_u_e parameter specified a time was too
                    large to be handled.

SEE ALSO
     sigvec(2), gettimeofday(2)
























Printed 12/27/86         August 26, 1985                        2