Linux x86_64Tempo & temporizadores#35
nanosleep
Suspende a thread chamadora pelo intervalo especificado, com resolução de nanossegundos.
Descrição
Se interrompida por um sinal, retorna o tempo restante em `rem` (quando não NULL), permitindo retomar a espera. Amplamente substituída em código novo por `clock_nanosleep`, que suporta relógios diferentes e deadlines absolutos.
Header:
time.hman 2Assinatura
int nanosleep(const struct timespec * req, struct timespec * rem);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| req | const struct timespec * | Duração da pausa desejada. |
| rem | struct timespec * | Se não for NULL, recebe o tempo restante caso a chamada seja interrompida. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | reqconst struct timespec * |
| rsi | argumento 2 | remstruct timespec * |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
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
Equivalente em Windows Win32