Voltar à lista
Linux x86_64Tempo & temporizadores#230

clock_nanosleep

Suspende a thread chamadora até um instante ou por uma duração, relativa a um relógio específico.

Descrição

Generaliza `nanosleep`, permitindo dormir até um timestamp absoluto (TIMER_ABSTIME) em qualquer relógio suportado — essencial para agendar acordar em um instante exato sem sofrer 'drift' acumulado de somar durações repetidamente.

Header: time.hman 2

Assinatura

int clock_nanosleep(
    clockid_t clockid,
    int flags,
    const struct timespec * request,
    struct timespec * remain
);

Parâmetros

ParâmetroTipoDescrição
clockidclockid_tRelógio de referência.
flagsintTIMER_ABSTIME para tempo absoluto, ou 0 para relativo.
requestconst struct timespec *Instante ou duração da pausa.
remainstruct timespec *Se não for NULL e a chamada for relativa, recebe o tempo restante caso interrompida.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1clockidclockid_t
rsiargumento 2flagsint
rdxargumento 3requestconst struct timespec *
r10argumento 4remainstruct timespec *

Valor de retorno

0 em sucesso; um código de erro positivo diretamente como valor de retorno (não via errno) em caso de falha.

Códigos de erro (errno)

EINTR(4)
Chamada interrompida por um sinal.
EINVAL(22)
Argumento inválido.
EFAULT(14)
Endereço de memória inválido (ponteiro fora do espaço de endereçamento válido).

Relacionadas