exit status
Megjelenés
Főnév
exit status (tsz. exit statuses)
- (informatika) Az exit status (magyarul: kilépési állapotkód, kilépési kód) az a számérték, amit egy program visszaad, amikor befejezi a futását. Ezt az értéket a futtató környezet (pl. operációs rendszer, shell, szülőfolyamat) látja, és eldöntheti, hogy a program sikeresen vagy hibával zárult.
Gyakorlatilag a program jelez a külvilágnak:
- 0 → sikeres futás
- nem 0 → valamilyen hiba történt
Hogyan működik?
A legtöbb program egy main függvénytől indul, pl. C++-ban:
int main() {
// program logika
return 0; // exit status: 0 → sikeres kilépés
}
Itt a return 0; mondja meg az operációs rendszernek, hogy minden rendben ment.
Ha például hiba történt, más értéket adhatunk vissza:
int main() {
std::cerr << "Error: Invalid arguments." << std::endl;
return 1; // exit status: 1 → hiba
}
Hol hasznos az exit status?
- Ha más program hívja a te programodat (pl. shell script, makefile, CI pipeline), az ellenőrizni tudja, hogy a program sikeresen lefutott-e.
- Unix/Linux parancssorban a
$?változóban látod az utolsó parancs kilépési státuszát.
Példa:
$ ./my_program
$ echo $? # kiírja a kilépési kódot
Ha 0 → OK. Ha nem 0 → valamilyen hiba.
Szokásos konvenciók
| Exit status érték | Jelentés |
|---|---|
| 0 | Sikeres lefutás |
| 1 | Általános hiba |
| 2 | Parancssori argumentum hiba |
| 126 | Parancs nem hajtható végre |
| 127 | Parancs nem található |
| 128+n | Sziganllal (signal) megszakított program (pl. 130 = Ctrl+C) |
Természetesen saját alkalmazásban bármit definiálhatsz:
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
A cstdlib könyvtárban (C++-ban) ezek a makrók elérhetők:
#include <cstdlib>
int main() {
return EXIT_SUCCESS; // ugyanaz, mint return 0;
}
Példa: Hibák jelezése különböző kódokkal
int main(int argc, char* argv[]) {
if (argc < 2) {
std::cerr << "Error: Missing argument." << std::endl;
return 2; // parancssori argumentum hiba
}
if (/* valami más hiba */) {
return 3; // más jellegű hiba
}
// normál működés
return 0; // siker
}
Mi a különbség return és exit() között?
- A
main-bőlreturn val;ugyanazt eredményezi, mintexit(val); - De ha nem a main függvényben vagyunk, és a teljes programot akarjuk befejezni →
exit(val);kell:
#include <cstdlib>
void fatalError() {
std::cerr << "Fatal error occurred." << std::endl;
std::exit(1); // azonnali programkilépés exit status 1-gyel
}
exit()→ teljes folyamat leáll, globális destruktorok lefutnak.abort()→ teljes folyamat azonnal megszakad, destruktorok nem futnak le → crash dump.
Összefoglalás
👉 Exit status = program végén visszaadott egész szám → a külvilág jelzése, hogy a program sikeresen lefutott-e.
👉 Szokásos convention:
0= siker1vagy más ≠ 0 = hiba
👉 Miért fontos?
- Automatizálásban, shell szkriptekben, CI/CD-ben
- Programok egymás közti kommunikációjában
👉 Hogyan adjuk vissza?
return <kód>;amain-ből- vagy bárhonnan:
std::exit(<kód>);
👉 Hol látod? Linux/Mac shell → $? változóban.
- exit status - Szótár.net (en-hu)
- exit status - Sztaki (en-hu)
- exit status - Merriam–Webster
- exit status - Cambridge
- exit status - WordNet
- exit status - Яндекс (en-ru)
- exit status - Google (en-hu)
- exit status - Wikidata
- exit status - Wikipédia (angol)