Voltar à lista
Linux x86_64Sistema de arquivos#304

open_by_handle_at

Abre um arquivo a partir de um file handle opaco obtido com name_to_handle_at.

Descrição

Contraparte de abertura de `name_to_handle_at`.

man 2Desde o kernel 2.6.39

Nota

Exige CAP_DAC_READ_SEARCH — file handles ignoram as permissões normais de diretório na resolução, então essa restrição de capability é a principal barreira de segurança.

Assinatura

int open_by_handle_at(int mount_fd, struct file_handle * handle, int flags);

Parâmetros

ParâmetroTipoDescrição
mount_fdintDescritor de qualquer arquivo dentro da montagem referenciada pelo handle.
handlestruct file_handle *File handle previamente obtido.
flagsintFlags de abertura, como em open.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1mount_fdint
rsiargumento 2handlestruct file_handle *
rdxargumento 3flagsint

Valor de retorno

Um novo descritor de arquivo em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EACCES(13)
Permissão negada.
EBADF(9)
Descritor de arquivo inválido.
EPERM(1)
Operação não permitida (falta de privilégio).
ESTALE(116)
File handle obsoleto (comum em NFS).

Relacionadas