Visszaküldési kód

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 .

Szemantika

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.

Amiga OS

Az AmigaOS a visszatérési kódok három szintjét határozza meg

Shell és script nyelvek

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.

DOS

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

Lásd még

Linkek