April 17, 1997 NANOSLEEP 2

### NAME

nanosleep - high resolution sleep

### LIBRARY

Standard C Library (libc, -lc)

### SYNOPSIS

```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 structure 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'') .