Voltar à lista
Linux x86_64Sistema de arquivos#301

fanotify_mark

Adiciona, remove ou modifica um item monitorado (arquivo, diretório ou montagem inteira) em uma instância fanotify.

Descrição

Contraparte de `inotify_add_watch`/`inotify_rm_watch` para fanotify, com granularidade adicional de operar sobre um mount point inteiro.

Header: sys/fanotify.hman 2Desde o kernel 2.6.36

Assinatura

int fanotify_mark(
    int fanotify_fd,
    unsigned int flags,
    uint64_t mask,
    int dirfd,
    const char * pathname
);

Parâmetros

ParâmetroTipoDescrição
fanotify_fdintDescritor da instância fanotify.
flagsunsigned intFAN_MARK_ADD, FAN_MARK_REMOVE, FAN_MARK_MOUNT, etc.
maskuint64_tEventos de interesse: FAN_ACCESS, FAN_MODIFY, FAN_OPEN, FAN_CLOSE_WRITE, etc.
dirfdintDescritor do diretório base, ou AT_FDCWD.
pathnameconst char *Caminho do item a monitorar, ou NULL para operar sobre `dirfd` diretamente.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1fanotify_fdint
rsiargumento 2flagsunsigned int
rdxargumento 3maskuint64_t
r10argumento 4dirfdint
r8argumento 5pathnameconst char *

Valor de retorno

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

Códigos de erro (errno)

EBADF(9)
Descritor de arquivo inválido.
EINVAL(22)
Argumento inválido.
ENOENT(2)
Arquivo ou diretório inexistente.
ENOSPC(28)
Sem espaço livre no dispositivo.
ENOMEM(12)
Memória insuficiente para completar a operação.

Relacionadas