A program visszatérési kódja ( angolul Exit status ) egy egész érték, amelyet a gyermekfolyamat a leállításkor visszaad a szülőfolyamatnak .
Számítógépes programok végrehajtásakor az operációs rendszer egy folyamatnak nevezett entitást hoz létre , amellyel nyomon követi és nyilvántartást vezet a program végrehajtásáról. Többfeladatos operációs rendszereken, mint például a Unix vagy a Linux , egy meglévő folyamat új folyamatot hozhat létre. Az alkotói folyamatot "szülői" folyamatnak, a létrejövő folyamatot pedig "gyermek" folyamatnak nevezik. A létrehozást követően az utódfolyamat párhuzamosan fut a szülővel. Ezt a gyermekfolyamat spawning technikát arra használják, hogy bizonyos munkákat átvigyenek a gyermekfolyamatba olyan helyzetekben, amikor a szülő folyamatnak nem kell rá időt szánnia. Amikor egy gyermekfolyamat befejezi a végrehajtását, automatikusan vagy kifejezetten, a programozó utasítására rendszerhívást indít kilépés , egész szám átadásával. A kilépési hívás eredménye az , hogy egy egész szám kerül átadásra a szülőfolyamatnak, amely a várakozó rendszerhívással visszakeresheti azt .
A szülő- és gyermekfolyamatok a maguk módján értelmezhetik a különböző visszatérési kódokat. Bevett gyakorlat például a nulla visszaadása, ha a gyermekfolyamat sikeres. Az is lehetséges, hogy a szülőfolyamat ismerje az összeomlás okát, például a jel fogadása miatti megszakítást .
A visszatérési kódok pontos készletét minden program a maga módján határozza meg. Sok rendszeren minél nagyobb az egész visszatérési kód értéke, annál súlyosabb a hiba oka. Egy másik gyakran használt technika, hogy egy jelzőkészletet adunk át az egyes bitek beállításával, ahogy az fsck segédprogram teszi .
Néha, ha a visszatérési kódokat ennek a használati esetnek a figyelembevételével választották ki, a kód felhasználható kódág számként a szülőfolyamat további végrehajtásához.
Az AmigaOS a visszatérési kódok három szintjét határozza meg
A parancssorból meghívott segédprogram visszatérési kódja a waitid rendszerhívás vagy annak megfelelője eredménye. A teljes 32 bites visszatérési kód csak a waitid hívásával érhető el , a régebbi interfészek pedig egy bájtra csonkolt számot adnak vissza.
A shellek szempontjából egy nulla visszatérési kódú parancs sikerült, míg a nem nulla visszatérési kódú parancs sikertelen volt. Az eredmény egy logikátlan helyzet, amelyben egy szabványos módszer létezik a siker jelentésére, és számos különféle mód létezik a hiba okainak felsorolására. Ha a parancs az N jel fogadása után véget ér, a shell $? érték nagyobb, mint 128. A legtöbb shell 128+N-t használ, de a ksh93 256+N-t használ.
Ha a parancs nem található, a parancsértelmezőnek a 127-es számot kell visszaadnia. Ha a parancs megtalálható, de nem hajtható végre, akkor a 126-ot adja vissza, azonban nem minden shell követi ezeket a szabályokat.
Ha a parancs a kifejezésbővítés vagy átirányítás során fellépő hiba miatt meghiúsult, a visszatérési kód nullánál nagyobb lesz.
A DOS terminológiában a hibaszint egy végrehajtható program által visszaadott egész kimeneti érték:
mov ah, 4Ch
mov al, xx
int 21h
ahol xx a visszatérési kód a 00h és 0FFh tartományban