Linux x86_64Sistema de arquivos#76
truncate
Ajusta o tamanho de um arquivo (por caminho) para um valor exato, truncando ou estendendo com zeros.
Descrição
Se o novo tamanho for maior que o atual, o arquivo é estendido com um 'buraco' esparso (bytes lidos como zero, sem necessariamente ocupar espaço em disco).
Header:
unistd.hman 2Assinatura
int truncate(const char * path, off_t length);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| path | const char * | Caminho do arquivo. |
| length | off_t | Novo tamanho em bytes. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | pathconst char * |
| rsi | argumento 2 | lengthoff_t |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EACCES(13)
- Permissão negada.
- EFBIG(27)
- Arquivo grande demais.
- EINVAL(22)
- Argumento inválido.
- EISDIR(21)
- É um diretório (operação exige um arquivo comum).
- ENOENT(2)
- Arquivo ou diretório inexistente.
- EROFS(30)
- Sistema de arquivos somente leitura.