Voltar à lista
Linux x86_64E/S assíncrona & eventos#233

epoll_ctl

Adiciona, modifica ou remove a inscrição de um descritor de arquivo em uma instância epoll.

Descrição

Registrar um descritor uma única vez (em vez de repassar a lista inteira a cada chamada, como select/poll) é o que dá a epoll sua escalabilidade.

Header: sys/epoll.hman 2

Assinatura

int epoll_ctl(int epfd, int op, int fd, struct epoll_event * event);

Parâmetros

ParâmetroTipoDescrição
epfdintDescritor da instância epoll.
opintEPOLL_CTL_ADD, EPOLL_CTL_MOD ou EPOLL_CTL_DEL.
fdintDescritor a registrar/alterar/remover.
eventstruct epoll_event *Eventos de interesse e dado associado (ignorado para EPOLL_CTL_DEL).

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1epfdint
rsiargumento 2opint
rdxargumento 3fdint
r10argumento 4eventstruct epoll_event *

Valor de retorno

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

Códigos de erro (errno)

EBADF(9)
Descritor de arquivo inválido.
EEXIST(17)
Arquivo já existe.
EINVAL(22)
Argumento inválido.
ENOENT(2)
Arquivo ou diretório inexistente.
ENOMEM(12)
Memória insuficiente para completar a operação.
ENOSPC(28)
Sem espaço livre no dispositivo.
EPERM(1)
Operação não permitida (falta de privilégio).

Relacionadas