Voltar à lista
Linux x86_64Processos & threads#247

waitid

Versão mais flexível de wait4, com seleção mais granular de qual mudança de estado aguardar e opção de não consumir o estado do filho.

Descrição

Permite, por exemplo, esperar por um PID específico ou por qualquer processo do mesmo PGID, filtrar por tipo de evento (WEXITED, WSTOPPED, WCONTINUED) e usar WNOWAIT para 'espiar' o estado sem removê-lo (permitindo que outra chamada wait o colha depois).

Header: sys/wait.hman 2

Assinatura

int waitid(idtype_t idtype, id_t id, siginfo_t * infop, int options);

Parâmetros

ParâmetroTipoDescrição
idtypeidtype_tP_PID, P_PGID ou P_ALL — como `id` é interpretado.
idid_tPID, PGID, ou ignorado se idtype for P_ALL.
infopsiginfo_t *Recebe detalhes sobre a mudança de estado.
optionsintWEXITED, WSTOPPED, WCONTINUED, WNOHANG, WNOWAIT.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1idtypeidtype_t
rsiargumento 2idid_t
rdxargumento 3infopsiginfo_t *
r10argumento 4optionsint

Valor de retorno

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

Códigos de erro (errno)

ECHILD(10)
Nenhum processo filho.
EINTR(4)
Chamada interrompida por um sinal.
EINVAL(22)
Argumento inválido.

Relacionadas