

#include <lclib.h> unsigned sleep(unsigned sec); double sleepd(double sec);The synopsis for the POSIX implementation is
#include <sys/types.h> #include <unistd.h> unsigned sleep(unsigned sec); double sleepd(double sec);
sleep and sleepd are called to suspend execution of the program
for a specified number of seconds or until a signal occurs. If the value of the
sec argument is 0, the sleep or sleepd function immediately
returns to its caller. The behavior of the sleep and sleepd
functions depends on whether SIGALRM is defined as a signal
managed by SAS/C
or an OpenEdition signal. If SIGALRM is managed by OpenEdition, the
sleep function is implemented by OpenEdition, and the sleepd
function is not implemented. In this case, note that the occurrence of
a signal managed by SAS/C does not cause sleep to terminate. If
SIGALRM is managed by SAS/C, a value of sec that is more than a
day (86,400 seconds) is treated as a day.
You may use
sleep or sleepd in association with the alarm
or alarmd function. If either of these functions is called
before completion of
a time interval set with an alarm function, execution resumes when the alarm
interval ends or the sleep interval ends, whichever occurs first.
The SAS/C implementation of sleep and sleepd always unblocks the
SIGALRM signal to enable them to detect the completion of the time interval.
However, no other signals are unblocked, and the signal mask is completely
restored before these functions return. If a signal is raised
and then blocked, program execution does not resume. If an unblocked signal occurs, the
handler for the signal is executed before these functions return to the
program that called it.
sleepd performs the same actions as sleep but permits the amount
of time to be specified with greater accuracy. The accuracy of timing depends
on the operating system and CPU model.
sleep
and sleepd functions return 0. If a signal occurs that ends the sleep
period, the functions return the amount of time left in the sleep interval;
sleep rounds up to an integer of seconds.
sleep and sleepd. If SET TIMER REAL is not
in effect, a diagnostic message is produced and these functions return
immediately.
sleepd is not portable.
sleep and sleepd are implemented using idle waiting; that is,
no CPU time is consumed (other than set-up time) during the sleep interval.
acquire to get exclusive control of a
file. It tries to obtain control four times a second until it is successful.
#include <lclib.h>
/* Return 1 if successful,and 0 if unsuccessful. */
int acquire();
while (!acquire())
sleepd(0.25);
.
.
.
alarm, alarmd, select, sigsuspend
Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.