Voltar à lista
Linux x86_64Sistema de arquivos#303

name_to_handle_at

Obtém um 'file handle' opaco e persistente para um arquivo, junto com um descritor do sistema de arquivos que o contém.

Descrição

Usada com `open_by_handle_at` para reabrir um arquivo mais tarde (possivelmente após o processo original ter terminado) sem depender de seu caminho — a base do suporte a NFS reexportado e de alguns backends de checkpoint/restore.

man 2Desde o kernel 2.6.39

Nota

Exige CAP_DAC_READ_SEARCH para uso geral sem restrições adicionais de path.

Assinatura

int name_to_handle_at(
    int dirfd,
    const char * pathname,
    struct file_handle * handle,
    int * mount_id,
    int flags
);

Parâmetros

ParâmetroTipoDescrição
dirfdintDescritor do diretório base, ou AT_FDCWD.
pathnameconst char *Caminho do arquivo.
handlestruct file_handle *Recebe o file handle opaco.
mount_idint *Recebe um identificador da montagem que contém o arquivo.
flagsintAT_SYMLINK_FOLLOW, AT_EMPTY_PATH.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1dirfdint
rsiargumento 2pathnameconst char *
rdxargumento 3handlestruct file_handle *
r10argumento 4mount_idint *
r8argumento 5flagsint

Valor de retorno

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

Códigos de erro (errno)

EINVAL(22)
Argumento inválido.
EOPNOTSUPP(95)
Operação não suportada nesse socket/arquivo (também ENOTSUP).
EOVERFLOW(75)
Valor grande demais para o tipo de dado de destino.
EPERM(1)
Operação não permitida (falta de privilégio).

Relacionadas