Linux x86_64Sistema de arquivos#428
open_tree
Abre uma referência (descritor de arquivo) para uma árvore de montagem existente, sem necessariamente montá-la em outro lugar ainda.
Descrição
Parte da nova API de montagem baseada em descritores de arquivo (junto com fsopen/fsconfig/fsmount/move_mount), que substitui gradualmente `mount`/`umount2` para casos de uso complexos, com melhor tratamento de erro e suporte nativo a montagens não privilegiadas em user namespaces.
Header:
linux/mount.hman 2Desde o kernel 5.2Assinatura
int open_tree(int dirfd, const char * pathname, unsigned int flags);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| dirfd | int | Descritor do diretório base, ou AT_FDCWD. |
| pathname | const char * | Caminho da árvore de montagem a referenciar. |
| flags | unsigned int | OPEN_TREE_CLONE, OPEN_TREE_CLOEXEC, AT_RECURSIVE. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | dirfdint |
| rsi | argumento 2 | pathnameconst char * |
| rdx | argumento 3 | flagsunsigned int |
Valor de retorno
Um descritor de arquivo referenciando a árvore de montagem em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EINVAL(22)
- Argumento inválido.
- ENOENT(2)
- Arquivo ou diretório inexistente.
- EPERM(1)
- Operação não permitida (falta de privilégio).