Linux x86_64Sistema de arquivos#188
setxattr
Define um atributo estendido (extended attribute) de um arquivo, por caminho.
Descrição
Extended attributes armazenam metadados adicionais arbitrários associados a um arquivo, além dos atributos POSIX tradicionais — usados por ACLs, rótulos de segurança SELinux, capabilities de arquivo, e metadados de aplicação (ex.: origem de download).
Header:
sys/xattr.hman 2Assinatura
int setxattr(
const char * path,
const char * name,
const void * value,
size_t size,
int flags
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| path | const char * | Caminho do arquivo. |
| name | const char * | Nome do atributo, no formato "namespace.nome" (ex.: "user.comment", "security.selinux"). |
| value | const void * | Novo valor do atributo. |
| size | size_t | Tamanho de `value`. |
| flags | int | 0, XATTR_CREATE (falha se já existir) ou XATTR_REPLACE (falha se não existir). |
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 | nameconst char * |
| rdx | argumento 3 | valueconst void * |
| r10 | argumento 4 | sizesize_t |
| r8 | argumento 5 | flagsint |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EDQUOT(122)
- Cota de disco excedida.
- EEXIST(17)
- Arquivo já existe.
- ENODATA(61)
- Nenhum dado disponível.
- ENOSPC(28)
- Sem espaço livre no dispositivo.
- ENOTSUP(95)
- Sinônimo de EOPNOTSUPP — operação não suportada.
- EPERM(1)
- Operação não permitida (falta de privilégio).