.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved 
.TH "UALARM" 3P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
.\" ualarm 
.SH PROLOG
This manual page is part of the POSIX Programmer's Manual.
The Linux implementation of this interface may differ (consult
the corresponding Linux manual page for details of Linux behavior),
or the interface may not be implemented on Linux.
.SH NAME
ualarm \- set the interval timer
.SH SYNOPSIS
.LP
\fB#include <unistd.h>
.br
.sp
useconds_t ualarm(useconds_t\fP \fIuseconds\fP\fB, useconds_t\fP \fIinterval\fP\fB);
\fP
\fB
.br
\fP
.SH DESCRIPTION
.LP
The \fIualarm\fP() function shall cause the SIGALRM signal to be generated
for the calling process after the number of realtime
microseconds specified by the \fIuseconds\fP argument has elapsed.
When the \fIinterval\fP argument is non-zero, repeated timeout
notification occurs with a period in microseconds specified by the
\fIinterval\fP argument. If the notification signal, SIGALRM,
is not caught or ignored, the calling process is terminated.
.LP
Implementations may place limitations on the granularity of timer
values. For each interval timer, if the requested timer value
requires a finer granularity than the implementation supports, the
actual timer value shall be rounded up to the next supported
value.
.LP
Interactions between \fIualarm\fP() and any of the following are unspecified:
.sp
.RS
.nf

\fIalarm\fP()
\fInanosleep\fP()
\fIsetitimer\fP()
\fItimer_create\fP()
\fItimer_delete\fP()
\fItimer_getoverrun\fP()
\fItimer_gettime\fP()
\fItimer_settime\fP()
\fIsleep\fP()
.fi
.RE
.SH RETURN VALUE
.LP
The \fIualarm\fP() function shall return the number of microseconds
remaining from the previous \fIualarm\fP() call. If no
timeouts are pending or if \fIualarm\fP() has not previously been
called, \fIualarm\fP() shall return 0.
.SH ERRORS
.LP
No errors are defined.
.LP
\fIThe following sections are informative.\fP
.SH EXAMPLES
.LP
None.
.SH APPLICATION USAGE
.LP
Applications are recommended to use \fInanosleep\fP() if the Timers
option is
supported, or \fIsetitimer\fP(), \fItimer_create\fP(), \fItimer_delete\fP(),
\fItimer_getoverrun\fP(), \fItimer_gettime\fP(), or \fItimer_settime\fP()
instead of this function.
.SH RATIONALE
.LP
None.
.SH FUTURE DIRECTIONS
.LP
None.
.SH SEE ALSO
.LP
\fIalarm\fP(), \fInanosleep\fP(), \fIsetitimer\fP(), \fIsleep\fP(),
\fItimer_create\fP(), \fItimer_delete\fP(), \fItimer_getoverrun\fP(),
the Base Definitions volume of IEEE\ Std\ 1003.1-2001, \fI<unistd.h>\fP
.SH COPYRIGHT
Portions of this text are reprinted and reproduced in electronic form
from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
-- Portable Operating System Interface (POSIX), The Open Group Base
Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
Electrical and Electronics Engineers, Inc and The Open Group. In the
event of any discrepancy between this version and the original IEEE and
The Open Group Standard, the original IEEE and The Open Group Standard
is the referee document. The original Standard can be obtained online at
http://www.opengroup.org/unix/online.html .
