Voltar à lista
Linux x86_64Arquivos & E/S#285

fallocate

Reserva (ou libera) espaço em disco para um arquivo sem precisar escrever dados nele.

Descrição

Garante que escritas futuras dentro da região alocada não falharão por falta de espaço, e pode evitar fragmentação ao reservar um bloco contíguo antecipadamente. Também suporta perfurar buracos (FALLOC_FL_PUNCH_HOLE) e outras operações de gerência de espaço.

man 2Desde o kernel 2.6.23

Assinatura

int fallocate(int fd, int mode, off_t offset, off_t len);

Parâmetros

ParâmetroTipoDescrição
fdintDescritor de arquivo.
modeint0 para alocação simples, ou flags como FALLOC_FL_KEEP_SIZE, FALLOC_FL_PUNCH_HOLE.
offsetoff_tInício da região.
lenoff_tTamanho da região.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1fdint
rsiargumento 2modeint
rdxargumento 3offsetoff_t
r10argumento 4lenoff_t

Valor de retorno

0 em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EBADF(9)
Descritor de arquivo inválido.
EFBIG(27)
Arquivo grande demais.
EINVAL(22)
Argumento inválido.
ENODEV(19)
Dispositivo inexistente.
ENOSPC(28)
Sem espaço livre no dispositivo.
EOPNOTSUPP(95)
Operação não suportada nesse socket/arquivo (também ENOTSUP).

Relacionadas