Annotation of 43BSDReno/lib/libc/sys/getitimer.2, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1983 The Regents of the University of California.
                      2: .\" All rights reserved.
                      3: .\"
                      4: .\" Redistribution and use in source and binary forms are permitted provided
                      5: .\" that: (1) source distributions retain this entire copyright notice and
                      6: .\" comment, and (2) distributions including binaries display the following
                      7: .\" acknowledgement:  ``This product includes software developed by the
                      8: .\" University of California, Berkeley and its contributors'' in the
                      9: .\" documentation or other materials provided with the distribution and in
                     10: .\" all advertising materials mentioning features or use of this software.
                     11: .\" Neither the name of the University nor the names of its contributors may
                     12: .\" be used to endorse or promote products derived from this software without
                     13: .\" specific prior written permission.
                     14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
                     15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
                     16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     17: .\"
                     18: .\"    @(#)getitimer.2 6.5 (Berkeley) 6/23/90
                     19: .\"
                     20: .TH GETITIMER 2 "June 23, 1990"
                     21: .UC 5
                     22: .SH NAME
                     23: getitimer, setitimer \- get/set value of interval timer
                     24: .SH SYNOPSIS
                     25: .nf
                     26: .ft B
                     27: #include <sys/time.h>
                     28: .PP
                     29: .ft B
                     30: #define ITIMER_REAL    0       /* real time intervals */
                     31: #define ITIMER_VIRTUAL 1       /* virtual time intervals */
                     32: #define ITIMER_PROF    2       /* user and system virtual time */
                     33: .sp
                     34: .ft B
                     35: getitimer(which, value)
                     36: int which;
                     37: struct itimerval *value;
                     38: .PP
                     39: .ft B
                     40: setitimer(which, value, ovalue)
                     41: int which;
                     42: struct itimerval *value, *ovalue;
                     43: .fi
                     44: .SH DESCRIPTION
                     45: The system provides each process with three interval timers,
                     46: defined in
                     47: .RI < sys/time.h >.
                     48: The
                     49: .I getitimer
                     50: call returns the current value for the timer specified in
                     51: .I which
                     52: in the structure at
                     53: .IR value .
                     54: The
                     55: .I setitimer
                     56: call sets a timer to the specified
                     57: .I value
                     58: (returning the previous value of the timer if
                     59: .I ovalue
                     60: is nonzero).
                     61: .PP
                     62: A timer value is defined by the 
                     63: .I itimerval
                     64: structure:
                     65: .PP
                     66: .nf
                     67: .RS
                     68: .DT
                     69: struct itimerval {
                     70:        struct  timeval it_interval;    /* timer interval */
                     71:        struct  timeval it_value;       /* current value */
                     72: };
                     73: .RE
                     74: .fi
                     75: .PP
                     76: If
                     77: .I it_value
                     78: is non-zero, it indicates the time to the next timer expiration. 
                     79: If
                     80: .I it_interval
                     81: is non-zero, it specifies a value to be used in reloading 
                     82: .I it_value
                     83: when the timer expires.
                     84: Setting 
                     85: .I it_value
                     86: to 0 disables a timer.  Setting 
                     87: .I it_interval
                     88: to 0 causes a timer to be disabled after its next expiration (assuming
                     89: .I it_value
                     90: is non-zero).
                     91: .PP
                     92: Time values smaller than the resolution of the
                     93: system clock are rounded up to this resolution
                     94: (on the VAX, 10 milliseconds).
                     95: .PP
                     96: The ITIMER_REAL timer decrements in real time.  A SIGALRM signal is
                     97: delivered when this timer expires.
                     98: .PP
                     99: The ITIMER_VIRTUAL timer decrements in process virtual time.
                    100: It runs only when the process is executing.  A SIGVTALRM signal
                    101: is delivered when it expires.
                    102: .PP
                    103: The ITIMER_PROF timer decrements both in process virtual time and
                    104: when the system is running on behalf of the process.  It is designed
                    105: to be used by interpreters in statistically profiling the execution
                    106: of interpreted programs.
                    107: Each time the ITIMER_PROF timer expires, the SIGPROF signal is
                    108: delivered.  Because this signal may interrupt in-progress
                    109: system calls, programs using this timer must be prepared to
                    110: restart interrupted system calls.
                    111: .SH NOTES
                    112: Three macros for manipulating time values are defined in
                    113: .RI < sys/time.h >.
                    114: .I Timerclear
                    115: sets a time value to zero,
                    116: .I timerisset
                    117: tests if a time value is non-zero, and
                    118: .I timercmp
                    119: compares two time values (beware that >= and <= do not
                    120: work with this macro).
                    121: .SH "RETURN VALUE
                    122: If the calls succeed, a value of 0 is returned.  If an error occurs,
                    123: the value \-1 is returned, and a more precise error code is placed
                    124: in the global variable \fIerrno\fP.
                    125: .SH "ERRORS
                    126: The possible errors are:
                    127: .TP 15
                    128: [EFAULT]
                    129: The \fIvalue\fP parameter specified a bad address.
                    130: .TP 15
                    131: [EINVAL]
                    132: A \fIvalue\fP parameter specified a time was too large
                    133: to be handled.
                    134: .SH "SEE ALSO"
                    135: select(2), sigvec(2), gettimeofday(2)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.