Linux x86_64Tempo & temporizadores#96Depreciada
gettimeofday
Retorna a hora atual do relógio de parede (wall-clock), com resolução de microssegundos.
Descrição
Uma das syscalls mais chamadas historicamente; em Linux moderno é implementada como vDSO (executa inteiramente em espaço de usuário quando possível, sem trap para o kernel). Considerada obsoleta pela POSIX em favor de `clock_gettime(CLOCK_REALTIME, ...)`, que tem resolução de nanossegundos.
Header:
sys/time.hman 2Depreciada
Prefira `clock_gettime(CLOCK_REALTIME, ...)`: maior resolução e semântica mais clara sobre saltos de relógio.
Assinatura
int gettimeofday(struct timeval * tv, struct timezone * tz);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| tv | struct timeval * | Recebe segundos e microssegundos desde a época Unix. |
| tz | struct timezone * | Obsoleto — deve ser NULL; seu uso não é suportado de forma confiável. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | tvstruct timeval * |
| rsi | argumento 2 | tzstruct timezone * |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EFAULT(14)
- Endereço de memória inválido (ponteiro fora do espaço de endereçamento válido).
- EINVAL(22)
- Argumento inválido.
Relacionadas
Equivalente em Windows Win32