BSD syscall#83
svc · unix #83
setitimer
Arms or disarms one of the per-process interval timers.
Prototype
int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv);Returns: int
Arguments
| Name | Type | Dir | Description |
|---|---|---|---|
| which | u_int | - | |
| itv | struct itimerval | - | |
| oitv | struct itimerval | - |
Version history
| XNU tag | macOS | # |
|---|---|---|
| xnu-1456.1.26 | macOS 10.6 Snow Leopard | 83 |
| xnu-1699.24.8 | macOS 10.7 Lion | 83 |
| xnu-2050.18.24 | macOS 10.8 Mountain Lion | 83 |
| xnu-2422.115.4 | macOS 10.9 Mavericks | 83 |
| xnu-2782.40.9 | macOS 10.10 Yosemite | 83 |
| xnu-3247.1.106 | macOS 10.11 El Capitan | 83 |
| xnu-3789.1.32 | macOS 10.12 Sierra | 83 |
| xnu-4570.1.46 | macOS 10.13 High Sierra | 83 |
| xnu-4903.221.2 | macOS 10.14 Mojave | 83 |
| xnu-6153.11.26 | macOS 10.15 Catalina | 83 |
| xnu-7195.50.7.100.1 | macOS 11.0 Big Sur | 83 |
| xnu-8019.41.5 | macOS 12.0 Monterey | 83 |
| xnu-8792.41.9 | macOS 13.0 Ventura | 83 |
| xnu-10002.1.13 | macOS 14.0 Sonoma | 83 |
| xnu-11215.1.10 | macOS 15.0 Sequoia | 83 |
| xnu-11417.101.15 | macOS 15.4 Sequoia | 83 |
| xnu-12377.1.9 | macOS 26.0 Tahoe | 83 |
| xnu-10002.41.9 | — | 83 |
| xnu-10002.61.3 | — | 83 |
| xnu-10002.81.5 | — | 83 |
| xnu-10063.101.15 | — | 83 |
| xnu-10063.121.3 | — | 83 |
| xnu-10063.141.1 | — | 83 |
| xnu-11215.41.3 | — | 83 |
| xnu-11215.61.5 | — | 83 |
| xnu-11215.81.4 | — | 83 |
| xnu-11417.121.6 | — | 83 |
| xnu-11417.140.69 | — | 83 |
| xnu-12377.101.15 | — | 83 |
| xnu-12377.41.6 | — | 83 |
| xnu-12377.61.12 | — | 83 |
| xnu-12377.81.4 | — | 83 |
| xnu-1486.2.11 | — | 83 |
| xnu-1504.15.3 | — | 83 |
| xnu-1504.3.12 | — | 83 |
| xnu-1504.7.4 | — | 83 |
| xnu-1504.9.17 | — | 83 |
| xnu-1504.9.26 | — | 83 |
| xnu-1504.9.37 | — | 83 |
| xnu-1699.22.73 | — | 83 |
| xnu-1699.22.81 | — | 83 |
| xnu-1699.24.23 | — | 83 |
| xnu-1699.26.8 | — | 83 |
| xnu-1699.32.7 | — | 83 |
| xnu-2050.22.13 | — | 83 |
| xnu-2050.24.15 | — | 83 |
| xnu-2050.48.11 | — | 83 |
| xnu-2050.7.9 | — | 83 |
| xnu-2050.9.2 | — | 83 |
| xnu-2422.1.72 | — | 83 |
| xnu-2422.100.13 | — | 83 |
| xnu-2422.110.17 | — | 83 |
| xnu-2422.90.20 | — | 83 |
| xnu-2782.1.97 | — | 83 |
| xnu-2782.10.72 | — | 83 |
| xnu-2782.20.48 | — | 83 |
| xnu-2782.30.5 | — | 83 |
| xnu-3247.10.11 | — | 83 |
| xnu-3248.20.55 | — | 83 |
| xnu-3248.30.4 | — | 83 |
| xnu-3248.40.184 | — | 83 |
| xnu-3248.50.21 | — | 83 |
| xnu-3248.60.10 | — | 83 |
| xnu-3789.21.4 | — | 83 |
| xnu-3789.31.2 | — | 83 |
| xnu-3789.41.3 | — | 83 |
| xnu-3789.51.2 | — | 83 |
| xnu-3789.60.24 | — | 83 |
| xnu-3789.70.16 | — | 83 |
| xnu-4570.20.62 | — | 83 |
| xnu-4570.31.3 | — | 83 |
| xnu-4570.41.2 | — | 83 |
| xnu-4570.51.1 | — | 83 |
| xnu-4570.61.1 | — | 83 |
| xnu-4570.71.2 | — | 83 |
| xnu-4903.231.4 | — | 83 |
| xnu-4903.241.1 | — | 83 |
| xnu-4903.270.47 | — | 83 |
| xnu-6153.101.6 | — | 83 |
| xnu-6153.121.1 | — | 83 |
| xnu-6153.141.1 | — | 83 |
| xnu-6153.41.3 | — | 83 |
| xnu-6153.61.1 | — | 83 |
| xnu-6153.81.5 | — | 83 |
| xnu-7195.101.1 | — | 83 |
| xnu-7195.121.3 | — | 83 |
| xnu-7195.141.2 | — | 83 |
| xnu-7195.60.75 | — | 83 |
| xnu-7195.81.3 | — | 83 |
| xnu-8019.61.5 | — | 83 |
| xnu-8019.80.24 | — | 83 |
| xnu-8020.101.4 | — | 83 |
| xnu-8020.121.3 | — | 83 |
| xnu-8020.140.41 | — | 83 |
| xnu-8792.61.2 | — | 83 |
| xnu-8792.81.2 | — | 83 |
| xnu-8796.101.5 | — | 83 |
| xnu-8796.121.2 | — | 83 |
| xnu-8796.141.3 | — | 83 |
Examples
Fire SIGALRM every 500ms
#include <sys/time.h>
struct itimerval it = {
.it_interval = { .tv_sec = 0, .tv_usec = 500000 },
.it_value = { .tv_sec = 0, .tv_usec = 500000 },
};
setitimer(ITIMER_REAL, &it, NULL);Notes
Setting it_value to zero disarms the timer; setting it_interval to non-zero requests periodic firing. Signal delivery is best-effort and can be coalesced if the process cannot run handlers fast enough. Note that only one timer per kind exists per process, so libraries that quietly install one will collide with application code.
Related APIs
getitimersigactionsigsuspendgettimeofdaykill