Linux x86_64Arquivos & E/S#221
fadvise64
Informa ao kernel o padrão de acesso esperado para uma região de um arquivo, para orientar heurísticas de cache/readahead.
Descrição
Diferente de `readahead` (que dispara uma ação imediata), `fadvise64` apenas dá uma dica de política — ex.: POSIX_FADV_SEQUENTIAL, POSIX_FADV_RANDOM, POSIX_FADV_DONTNEED (liberar cache).
man 2Desde o kernel 2.5.60
Assinatura
int fadvise64(int fd, loff_t offset, size_t len, int advice);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| fd | int | Descritor de arquivo. |
| offset | loff_t | Início da região. |
| len | size_t | Tamanho da região (0 = até o fim do arquivo). |
| advice | int | POSIX_FADV_NORMAL, SEQUENTIAL, RANDOM, NOREUSE, WILLNEED ou DONTNEED. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | fdint |
| rsi | argumento 2 | offsetloff_t |
| rdx | argumento 3 | lensize_t |
| r10 | argumento 4 | adviceint |
Valor de retorno
0 em sucesso; um código de erro positivo em caso de falha (não usa -1/errno neste caso).
Códigos de erro (errno)
- EBADF(9)
- Descritor de arquivo inválido.
- EINVAL(22)
- Argumento inválido.
- ESPIPE(29)
- Seek inválido (descritor não posicionável, ex.: pipe).