Starea de ieșire a unui program, numită și codul de retur, este un număr pe care programul îl transmite sistemului de operare, script-ului sau altui proces care l-a executat inițial odată ce programul a terminat de rulat. Nu există reguli reale pentru ceea ce înseamnă numerele folosite ca stare de ieșire, deși o valoare de zero înseamnă în mod tradițional că programul a ieșit în mod normal, iar orice valoare diferită de zero înseamnă că programul sa încheiat în mod neașteptat. Prin atribuirea unui număr stării de ieșire, programul sau procesul original care a apelat codul poate spune dacă programul a îndeplinit cu succes sarcinile necesare sau dacă trebuie întreprinse alte acțiuni.
Aproape toate limbajele de computer și multe limbaje de scripting au un mecanism sau funcție care poate returna o stare de ieșire. Există situații în care un program se poate opri în mod intenționat în mijlocul rulării, folosind un anumit cod de eroare pentru a indica că ceva nu este în regulă, cum ar fi un fișier de date lipsă sau lipsa memoriei computerului. Programele care nu definesc în mod explicit un cod de stare de ieșire vor returna un zero programului apelant, cu excepția cazului în care sistemul de operare sau interpretul de limbă încheie programul din cauza unor erori.
Starea de ieșire poate fi, de asemenea, utilizată pentru a comunica cu un script sau un alt proces prin transmiterea unor valori specifice înapoi care indică ce acțiune ar trebui luată în continuare. Un exemplu ar fi un script care este conceput pentru a menține un program în funcțiune, în ciuda posibilelor momente în care programul ar putea ieși pentru întreținere. Această schemă ar funcționa cu scriptul care execută programul și apoi așteaptă ca acesta să iasă. Programatorii l-ar putea aranja astfel încât programul să returneze un număr pentru a însemna că iese definitiv și nu ar trebui să fie repornit, iar un alt număr ar putea indica script-ului să aștepte o perioadă de timp și apoi să repornească programul; totuși o a treia valoare ar putea indica că programul a întâmpinat o eroare și necesită atenția unui programator.
Utilizarea unui cod de stare de ieșire pentru comunicații este convenabilă în anumite situații din cauza securității și a altor limitări pe care le au unele programe în diferite sisteme de operare. Există multe situații în care este imposibil ca un program să comunice cu procesul său de apelare sau cu un alt program care rulează în paralel pe același sistem. În aceste situații, opțiunile de comunicare între programe ar fi limitate la scheme complexe care implică memorie partajată, conexiuni la socket de rețea sau scriere de fișiere. Prin utilizarea unui statut de ieșire, informații simple pot fi transmise într-un mod foarte simplu, care nu necesită un cadru personalizat pentru a fi dezvoltat.