Returkoden ( English Exit status ) for programmet er en heltalsværdi, som den underordnede proces returnerer til den overordnede proces på tidspunktet for afslutningen.
Når computerprogrammer udføres, opretter operativsystemet en enhed kaldet en proces , med hvilken det sporer og registrerer programudførelsen. På multitasking-operativsystemer som Unix eller Linux kan en ny proces affødes af en eksisterende proces. Skaberprocessen kaldes "forældreprocessen", og processen, der skabes, kaldes "barneprocessen". Når den er oprettet, kører den underordnede proces parallelt med forælderen. Denne underordnede proces-gydningsteknik bruges til at overføre noget arbejde til under-processen i situationer, hvor forældreprocessen ikke behøver at bruge tid på det. Når en underordnet proces afslutter dens eksekvering, foretager den enten automatisk eller eksplicit, efter programmørens anvisning, afslutningssystemet kaldet og videregiver det et heltal. Resultatet af exit -kaldet er, at et heltal sendes til den overordnede proces, som kan hente det med vente -systemkaldet .
Forældre- og børneprocesser kan fortolke forskellige returkoder på deres egen måde. For eksempel er det almindelig praksis at returnere nul, hvis den underordnede proces lykkes. Det er også muligt for forældreprocessen at kende årsagen til nedbruddet, såsom at afbryde på grund af modtagelse af et signal .
Det nøjagtige sæt af returkoder bestemmes af hvert program på sin egen måde. På mange systemer gælder det, at jo større værdien af heltalsreturkoden er, desto mere alvorlig er årsagen til fejlen. En anden almindeligt anvendt teknik er at sende et sæt flag ved at indstille individuelle bits, som fsck -værktøjet gør .
Nogle gange, hvis returkoderne er blevet valgt med denne brugssag i tankerne, kan koden bruges som kodegrennummer til videre eksekvering i den overordnede proces.
AmigaOS definerer tre niveauer af returkoder
Returkoden for et hjælpeprogram kaldet fra kommandolinjen er resultatet af det ventende systemkald eller tilsvarende. Den fulde 32-bit returkode er kun tilgængelig via opkaldet til waitid , og ældre grænseflader returnerer et tal med værdien afkortet til én byte.
Fra skallernes synspunkt lykkedes en kommando med en nul returkode, mens en kommando med en ikke-nul returkode mislykkedes. Resultatet er en ulogisk situation, hvor der er én standard måde at rapportere succes på og et stort udvalg af forskellige måder at opregne årsagerne til en fejl på. Hvis kommandoen afsluttes efter at have modtaget signal nummer N, vil skallen indstille $? værdi højere end 128. De fleste skaller bruger 128+N, men ksh93 bruger 256+N.
Hvis kommandoen ikke findes, skal skallen returnere tallet 127. Hvis kommandoen findes, men ikke kan eksekveres, returneres 126. Det er dog ikke alle skaller, der følger disse regler.
Hvis kommandoen mislykkedes på grund af en fejl under udtryksudvidelse eller omdirigering, vil returkoden være større end nul.
I DOS-terminologi er fejlniveau en heltal outputværdi returneret af et eksekverbart program:
mov ah, 4Ch
mov al, xx
int 21h
hvor xx er returkoden i området fra 00h til 0FFh