Skip to content
Syscall BSD#1

svc · unix #1

exit

Termine le processus appelant et remonte un statut 8 bits au parent via wait().

Prototype

void exit(int rval);

Retour: void

Arguments

NameTypeDirDescription
rvalint-

Historique des versions

XNU tagmacOS#
xnu-1456.1.26macOS 10.6 Snow Leopard1
xnu-1486.2.111
xnu-1504.15.31
xnu-1504.3.121
xnu-1504.7.41
xnu-1504.9.171
xnu-1504.9.261
xnu-1504.9.371

Notes

Sur XNU, _exit() / exit() passent par exit1() côté noyau, qui détruit les threads, libère la task Mach, ferme les descripteurs et envoie SIGCHLD au parent. Le exit() libc exécute en plus les handlers atexit() et purge les buffers stdio ; l'appel système brut ne le fait pas. Les zombies restent dans la table proc tant que le parent ne les a pas récoltés via wait4/waitid.

Détection

Endpoint Security émet ES_EVENT_TYPE_NOTIFY_EXIT avec le statut au format wait4. La probe DTrace proc:::exit déclenche avec le code de sortie dans args[0].

API associées

forkwait4waitidexecvekill