HPUX getitimer[2]






 getitimer(2)                                                   getitimer(2)





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

 SYNOPSIS
      #include <time.h>

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

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

 DESCRIPTION
      The system provides each process with three interval timers, defined
      in <time.h>.  getitimer() returns the current value for the timer
      specified in which, whereas 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:

           struct itimerval {
              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 machine-dependent clock resolution
      is 1/HZ seconds, where the constant HZ is defined in <sys/param.h>.
      Time values larger than an implementation-specific maximum value are
      rounded down to this maximum.  The maximum values for the three
      interval timers are specified by the constants MAX_ALARM, MAX_VTALARM,
      and MAX_PROF defined in <sys/param.h>.  On all implementations, these
      values are guaranteed to be at least 31 days (in seconds).

      The which parameter specifies which timer to use.  The possible values
      are ITIMER_REAL, ITIMER_VIRTUAL, and ITIMER_PROF.

      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.



 Hewlett-Packard Company            - 1 -     HP-UX Release 9.0: August 1992






 getitimer(2)                                                   getitimer(2)





      The ITIMER_PROF timer decrements both in process virtual time and when
      the system is running on behalf of the process.  It is designed to be
      used by interpreters in statistically profiling the execution of
      interpreted programs.  Each time the ITIMER_PROF timer expires, the
      SIGPROF signal is delivered.  Since this signal can interrupt in-
      progress system calls, programs using this timer must be prepared to
      restart interrupted system calls.

      Interval timers are not inherited by a child process across a fork(),
      but are inherited across an exec().

      Three macros for manipulating time values are defined in <time.h>:

           timerclear        Set a time value to zero.

           timerisset        Test if a time value is non-zero.

           timercmp          Compare two time values.  (Beware that >= and
                             <= do not work with the timercmp macro.)

      The timer used with ITIMER_REAL is also used by alarm() (see
      alarm(2)).  Thus successive calls to alarm(), getitimer(), and
      setitimer() set and return the state of a single timer.  In addition,
      a call to alarm() sets the timer interval to zero.

 RETURN VALUE
      If the calls succeed, a value of 0 is returned.  If an error occurs,
      -1 is returned, and errno is set to indicate the error.

 ERRORS
      getitimer() or setitimer() fail if any of the following conditions are
      encountered:

           [EFAULT]       The value structure specified a bad address.
                          Reliable detection of this error is implementation
                          dependent.

           [EINVAL]       A value structure specified a microsecond value
                          less that zero or greater than or equal to one
                          million.

           [EINVAL]       which does not specify one of the three possible
                          timers.

 EXAMPLES
      The following call to setitimer() sets the real-time interval timer to
      expire initially after 10 seconds and every 0.5 seconds thereafter:

           struct itimerval rttimer;
           struct itimerval old_rttimer;




 Hewlett-Packard Company            - 2 -     HP-UX Release 9.0: August 1992






 getitimer(2)                                                   getitimer(2)





           rttimer.it_value.tv_sec     = 10;
           rttimer.it_value.tv_usec    = 0;
           rttimer.it_interval.tv_sec  = 0;
           rttimer.it_interval.tv_usec = 500000;

           setitimer (ITIMER_REAL, &rttimer, &old_rttimer);

 AUTHOR
      getitimer() was developed by the University of California, Berkeley.

 SEE ALSO
      alarm(2), exec(2), gettimeofday(2), signal(5).










































 Hewlett-Packard Company            - 3 -     HP-UX Release 9.0: August 1992