Linux x86_64Sistema de arquivos#429
move_mount
Move (ou anexa) uma árvore de montagem de um local para outro, usando descritores de arquivo em vez de caminhos ambíguos.
Descrição
Contraparte de anexação da nova API de montagem, usada para efetivamente colocar uma árvore obtida via `open_tree`/`fsmount` em seu destino final na hierarquia de sistemas de arquivos.
Header:
linux/mount.hman 2Desde o kernel 5.2Assinatura
int move_mount(
int from_dfd,
const char * from_pathname,
int to_dfd,
const char * to_pathname,
unsigned int flags
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| from_dfd | int | Descritor de origem (obtido de open_tree ou fsmount). |
| from_pathname | const char * | Caminho relativo a `from_dfd`, tipicamente vazio. |
| to_dfd | int | Descritor do diretório de destino, ou AT_FDCWD. |
| to_pathname | const char * | Caminho de destino, relativo a `to_dfd`. |
| flags | unsigned int | MOVE_MOUNT_F_EMPTY_PATH, MOVE_MOUNT_T_EMPTY_PATH. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | from_dfdint |
| rsi | argumento 2 | from_pathnameconst char * |
| rdx | argumento 3 | to_dfdint |
| r10 | argumento 4 | to_pathnameconst char * |
| r8 | argumento 5 | flagsunsigned int |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EBUSY(16)
- Dispositivo ou recurso ocupado.
- EINVAL(22)
- Argumento inválido.
- ENOENT(2)
- Arquivo ou diretório inexistente.
- EPERM(1)
- Operação não permitida (falta de privilégio).