Funkcja exit() może zostać wywołana na trzy sposoby:
Jawnie przez programistę. Ma wtedy postać exit(kod_powrotu). Jeśli kod_powrotu=0 to proces zakończył się pomyślnie. W przeciwnym wypadku zakończył się błędem, lub też kod_powrotu przekazuje jakąś informacje ojcu (np. numer wybranej opcji).
Niejawnie. To znaczy jeśli podczas wykonywania procesu, wskaźnik instrukcji dojdzie do końca funkcji main(), to przed jej zakończeniem zawsze wykonywana jest funkcja exit()
Niejawnie. Jeśli proces dostaje sygnał, którego nie przechwytuje. Wtedy to jądro wykonuje tę funkcję na procesie. Wtedy też kodem powrotu jest numer sygnału.
Musi istnieć mechanizm przechwycenia przez ojca kodu_powrotu dziecka. Dlatego funkcja exit() jedynie ,,sprząta'' po procesie i zostawia go w stanie zombie. Proces będzie na liście procesów dopóki jego ojciec nie wykona na nim funkcji systemowej wait() w celu odczytania kodu_powrotu. Jeśli proces zostanie osierocony, to ten obowiązek spełni proces init.