NANOSLEEP(2)              NetBSD System Calls Manual              NANOSLEEP(2)

NAME
     nanosleep -- high resolution sleep

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <time.h>

     int
     nanosleep(const struct timespec *rqtp, struct timespec *rmtp);

DESCRIPTION
     The nanosleep() suspends execution of the calling process until either
     the number of seconds and nanoseconds specified by rqtp have elapsed or a
     signal is delivered to the calling process and its action is to invoke a
     signal catching function or to terminate the process.  The suspension
     time may be longer than requested due to the scheduling of other activity
     by the system.

RETURN VALUES
     If the nanosleep() function returns because the requested time has
     elapsed, the value returned will be zero.

     If the nanosleep() function returns due to the delivery of a signal, the
     value returned will be the -1, and the global variable errno will be set
     to indicate the interruption.  If rmtp is non-NULL, the timespec struc-
     ture it references is updated to contain the unslept amount (the request
     time minus the time actually slept).

ERRORS
     If any of the following conditions occur, the nanosleep function shall
     return -1 and set errno to the corresponding value.

     [EFAULT]           Either rqtp or rmtp points to memory that is not a
                        valid part of the process address space.

     [EINTR]            nanosleep was interrupted by the delivery of a signal.

     [EINVAL]           rqtp specified a nanosecond value less than zero or
                        greater than 1000 million.

     [ENOSYS]           nanosleep is not supported by this implementation.

SEE ALSO
     sleep(3)

STANDARDS
     The nanosleep() function conforms to IEEE Std 1003.1b-1993 (``POSIX.1'').

NetBSD 5.0_STABLE               April 17, 1997               NetBSD 5.0_STABLE
