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

io_submit

Submete uma ou mais operações de I/O assíncrono a um contexto AIO.

Descrição

As operações (leitura, escrita, fsync) são enfileiradas e executadas de forma assíncrona; a conclusão é observada com `io_getevents`.

Header: linux/aio_abi.hman 2Desde o kernel 2.5

Assinatura

int io_submit(aio_context_t ctx_id, long nr, struct iocb ** iocbpp);

Parâmetros

ParâmetroTipoDescrição
ctx_idaio_context_tContexto AIO.
nrlongNúmero de operações em `iocbpp`.
iocbppstruct iocb **Array de ponteiros para blocos de controle de I/O descrevendo cada operação.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1ctx_idaio_context_t
rsiargumento 2nrlong
rdxargumento 3iocbppstruct iocb **

Valor de retorno

Número de operações submetidas com sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EAGAIN(11)
Recurso temporariamente indisponível (tente novamente); também conhecido como EWOULDBLOCK.
EBADF(9)
Descritor de arquivo inválido.
EFAULT(14)
Endereço de memória inválido (ponteiro fora do espaço de endereçamento válido).
EINVAL(22)
Argumento inválido.
ENOSYS(38)
Chamada de sistema não implementada nesta versão do kernel.

Relacionadas