Voltar à lista
Linux x86_64Processos & threads#61

wait4

Aguarda a mudança de estado de um processo filho (terminação, parada por sinal, ou continuação) e opcionalmente coleta seu uso de recursos.

Descrição

Base das funções de biblioteca `wait(3)`/`waitpid(3)`. É essencial para evitar processos zumbis: até que o pai chame `wait4` (ou equivalente) sobre um filho terminado, a entrada dele permanece na tabela de processos.

Header: sys/wait.hman 2

Assinatura

pid_t wait4(pid_t pid, int * wstatus, int options, struct rusage * rusage);

Parâmetros

ParâmetroTipoDescrição
pidpid_tPID específico, grupo de processos, ou -1 para qualquer filho.
wstatusint *Se não for NULL, recebe o status de saída/sinal do filho.
optionsintWNOHANG, WUNTRACED, WCONTINUED, entre outras.
rusagestruct rusage *Se não for NULL, recebe estatísticas de uso de recursos do filho.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1pidpid_t
rsiargumento 2wstatusint *
rdxargumento 3optionsint
r10argumento 4rusagestruct rusage *

Valor de retorno

PID do filho cujo estado mudou em sucesso; 0 se WNOHANG e nenhum filho mudou de estado; -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