Voltar à lista
Linux x86_64Sistema de arquivos#300

fanotify_init

Cria uma instância fanotify, um mecanismo de notificação de eventos do sistema de arquivos mais poderoso que inotify.

Descrição

Diferente de inotify, fanotify pode operar em nível de todo um sistema de arquivos ou montagem (não só arquivos individuais), reportar o processo responsável pelo evento, e — em modo permissivo — bloquear a operação até o receptor decidir permiti-la ou negá-la, tornando-o a base de scanners antivírus e soluções de DLP (Data Loss Prevention) em tempo real.

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

Nota

Modos que interceptam/bloqueiam eventos (FAN_CLASS_CONTENT/FAN_CLASS_PRE_CONTENT) exigem CAP_SYS_ADMIN.

Assinatura

int fanotify_init(unsigned int flags, unsigned int event_f_flags);

Parâmetros

ParâmetroTipoDescrição
flagsunsigned intFAN_CLASS_NOTIF, FAN_CLASS_CONTENT, FAN_CLOEXEC, FAN_NONBLOCK, etc.
event_f_flagsunsigned intFlags aplicadas aos descritores de arquivo entregues nos eventos (ex.: O_RDONLY, O_LARGEFILE).

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1flagsunsigned int
rsiargumento 2event_f_flagsunsigned int

Valor de retorno

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

Códigos de erro (errno)

EINVAL(22)
Argumento inválido.
EMFILE(24)
Limite de arquivos abertos do processo atingido.
ENOMEM(12)
Memória insuficiente para completar a operação.
EPERM(1)
Operação não permitida (falta de privilégio).

Relacionadas