Voltar à lista
Linux x86_64Sistema de arquivos#469

file_setattr

Define atributos específicos de sistema de arquivos de um arquivo (ex.: flags de inode ext4/Btrfs), de forma estruturada.

Descrição

Contraparte de escrita de `file_getattr`.

man 2Desde o kernel 6.13

Assinatura

int file_setattr(
    int dfd,
    const char * filename,
    struct file_attr * ufattr,
    size_t usize,
    unsigned int at_flags
);

Parâmetros

ParâmetroTipoDescrição
dfdintDescritor do diretório base, ou AT_FDCWD.
filenameconst char *Caminho, absoluto ou relativo a `dfd`.
ufattrstruct file_attr *Novos atributos a aplicar.
usizesize_tTamanho de `ufattr`.
at_flagsunsigned intAT_SYMLINK_NOFOLLOW, AT_EMPTY_PATH.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1dfdint
rsiargumento 2filenameconst char *
rdxargumento 3ufattrstruct file_attr *
r10argumento 4usizesize_t
r8argumento 5at_flagsunsigned int

Valor de retorno

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

Códigos de erro (errno)

EBADF(9)
Descritor de arquivo inválido.
EINVAL(22)
Argumento inválido.
ENOTTY(25)
Operação de controle inapropriada para o dispositivo (não é um terminal).
EPERM(1)
Operação não permitida (falta de privilégio).

Relacionadas