Provided by: manpages-es_1.55-10_all bug

NOMBRE

       nanosleep   -  hace  una  pausa  en  la  ejecucion  durante  un  tiempo
       especificado

SINOPSIS

       #include <time.h>

       int nanosleep(const struct timespec *req, struct timespec *rem);

DESCRIPCI'ON

       nanosleep retarda la ejecucion del programa durante al menos el  tiempo
       especificado en *req.  La funcion puede regresar antes si se ha mandado
       una senal al proceso. En este caso, devuelve -1, pone errno a EINTR,  y
       escribe  el  tiempo  restante en la estructura apuntada por rem a menos
       que rem sea NULL.  El valor de  *rem  puede  emplearse  para  llamar  a
       nanosleep de nuevo y completar la pausa especificada.

       La  estructura timespec se emplea para especificar intervalos de tiempo
       con precision de nanosegundo. Se especifica  en  <time.h>  y  tiene  la
       forma

              struct timespec
              {
                      time_t  tv_sec;         /* segundos */
                      long    tv_nsec;        /* nanosegundos */
              };

       El  valor  del  campo de nanosegundos debe estar en el rango de 0 a 999
       999 999.

       Comparado con sleep(3) y usleep(3), nanosleep tiene la  ventaja  de  no
       afectar  a  ninguna  senal, esta normalizado por POSIX, proporciona una
       resolucion del temporizador mayor, y permite que un `sleep' que ha sido
       interrumpido por una senal continue mas facilmente.

ERRORES

       En  caso  de  un  error  o  excepcion,  la llamada al sistema nanosleep
       devuelve -1 en vez de 0 y pone en errno uno de los valores siguientes:

       EINTR  La pausa ha sido interrumpida por una senal no bloqueante que ha
              sido  mandada  al  proceso.  El tiempo restante de sueno ha sido
              escrito en *rem de modo que el proceso pueda  llamar  facilmente
              de nuevo a nanosleep para continuar asi con la pausa.

       EINVAL El  valor  en  el  campo  tv_nsec  no  estaba en el rango de 0 a
              999 999 999 o tv_sec era un numero negativo.

FALLOS

       La implementacion actual de  nanosleep  esta  basada  en  el  mecanismo
       normal  del temporizador del nucleo, que tiene una resolucion de 1/HZ s
       (i.e., 10 ms en Linux/i386 y  1 ms  en  Linux/Alpha).   Por  lo  tanto,
       nanosleep  hace  una  pausa siempre de al menos el tiempo especificado,
       empero puede tardar hasta 10 ms mas hasta que el proceso sea  de  nuevo
       ejecutable. Por la misma razon, el valor devuelto en *rem en el caso de
       una senal enviada, se redondea normalmente al  siguiente  multiplo  mas
       grande de 1/HZ s.

       Como  algunas aplicaciones requieren pausas mucho mas precisas (p. ej.,
       para controlar algun hardware que requiere respuestas en tiempo  real),
       nanosleep  tambien  es  capaz de pausas cortas de alta precision. Si el
       proceso se planifica bajo una politica de tiempo real como SCHED_FIFO o
       SCHED_RR,  entonces  se  haran  pausas  de  hasta 2 ms como las esperas
       ocupadas con precision de microsegundo.

CONFORME A

       POSIX.1b (antes, POSIX.4).

V'EASE TAMBI'EN

       sleep(3), usleep(3), sched_setscheduler(2), timer_create(2)