Syscall BSD#7
svc · unix #7
wait4
Attend un changement d'état d'un processus enfant et retourne statut et rusage.
Prototype
int wait4(int pid, user_addr_t status, int options, user_addr_t rusage);Retour: int
Arguments
| Name | Type | Dir | Description |
|---|---|---|---|
| pid | int | - | |
| status | user_addr_t | - | |
| options | int | - | |
| rusage | user_addr_t | - |
Historique des versions
| XNU tag | macOS | # |
|---|---|---|
| xnu-1456.1.26 | macOS 10.6 Snow Leopard | 7 |
| xnu-1486.2.11 | — | 7 |
| xnu-1504.15.3 | — | 7 |
| xnu-1504.3.12 | — | 7 |
| xnu-1504.7.4 | — | 7 |
| xnu-1504.9.17 | — | 7 |
| xnu-1504.9.26 | — | 7 |
| xnu-1504.9.37 | — | 7 |
Notes
Récolteur BSD qui implémente waitpid() côté libc. Les options incluent WNOHANG pour du polling et WUNTRACED/WCONTINUED pour observer les arrêts de contrôle de jobs. L'out-paramètre rusage est rempli depuis les compteurs cumulés de l'enfant avant que sa struct proc ne soit libérée.
Détection
La probe DTrace syscall::wait4:return montre le PID récolté dans arg0 et le statut décodé via WIFEXITED/WTERMSIG. Endpoint Security corrèle l'ES_EVENT_TYPE_NOTIFY_EXIT précédent.
API associées
waitidforkposix_spawnexitkillgetrusage