Fogalomtár › Fejlesztői alapszavak
standard kimenet
angolul: standard output / standard error
A program két külön szöveges csatornája: az egyiken az eredményt adja ki, a másikon a hibaüzeneteket és figyelmeztetéseket.
Érthetően
Minden program, amelyet parancssorból indítasz, két külön „csövön” tud szöveget kiadni. A standard kimeneten (stdout) megy ki az, amiért a programot elindítottad, vagyis az eredmény. A standard hibakimeneten (stderr) megy ki minden más: hibaüzenetek, figyelmeztetések, a futás közbeni megjegyzések.
Olyan ez, mint egy étterem konyhája. A tálalóablakon át érkezik a kész étel, a szakács pedig egy másik ajtón szól ki, ha elfogyott a hal vagy tíz percet késik a rendelés. Ha mindkettő ugyanazon az ablakon jönne, a pincér a tányérra tenné a panaszt is.
A képernyőn a kettő általában összekeveredve jelenik meg, ezért elsőre nem is látod, hogy két csatorna van. A különbség akkor számít, amikor a kimenetet fájlba mented, vagy egy másik program olvassa: oda csak a tiszta eredménynek szabad eljutnia.
Az AI-agenteknél ez mindennapos kérdés. A kódoló agent a lefuttatott parancsok mindkét csatornáját elolvassa: a kimenetből tudja, mi lett az eredmény, a hibakimenetből pedig azt, mi romlott el és mit kell javítania.
Hogyan működik
- Amikor egy program elindul, három nyitott csatornát kap, többnyire attól a programtól örökölve, amely elindította (például a parancssortól): a bemenetet (stdin, 0-s sorszám), a kimenetet (stdout, 1-es) és a hibakimenetet (stderr, 2-es).
- A program maga dönti el, mit hová ír: az eredményt az 1-es csatornára, a hibákat és a naplóüzeneteket a 2-esre.
- Alapesetben mindkét csatorna a terminálablakba van kötve, ezért látod őket együtt a képernyőn.
- Átirányítással a kettő szétválasztható: az eredmény mehet fájlba vagy egy másik program bemenetére, miközben a hibák a képernyőn maradnak, vagy külön naplófájlba kerülnek.
- A program a végén egy kilépési kódot is visszaad. Megszokás szerint a 0 sikert jelent, minden más érték hibát vagy a szokásostól eltérő eredményt. Egy agent ezt a kódot a két csatorna tartalmával együtt nézi, és ebből dönti el a következő lépést.
Példa a mindennapokból
Megkéred a kódoló agentet, hogy futtassa le a teszteket, és a válaszában azt látod: „a parancs hibával állt le, a stderr szerint hiányzik egy csomag”. Az agent a hibakimenetről olvasta le, mi a baj, ezért a következő lépésben telepíti a hiányzó csomagot, és újra próbálkozik.
Kit érint
Gyakori félreértés
Korlátok és kockázatok
- A két csatornára csak szokás vonatkozik, kényszer nincs: akad program, amely a hibát is a standard kimenetre írja, vagy fordítva.
- A kimenetben jelszó, hozzáférési kulcs vagy személyes adat is megjelenhet, és ami egyszer a naplóba vagy az agent elé került, azt nehéz visszavonni.
- Az agent csak korlátozott mennyiségű szöveget tud egyszerre áttekinteni, ezért a nagyon hosszú kimenetet a rendszer levágja, és fontos részlet veszhet el.
- Ha egy agenthez kötött eszköz a standard csatornákon kommunikál, egyetlen odatévedt naplósor a standard kimeneten elronthatja az egész adatcserét.
Hasonló, de nem ugyanaz
- standard bemenet – A standard bemenet (stdin) az ellenkező irány: ezen a csatornán a program kapja az adatot, nem kiadja.
- naplófájl – A naplófájl tartósan megmarad a lemezen, a standard kimenet viszont csak átfolyó adat, amely elvész, ha senki nem menti el.
- kilépési kód – A kilépési kód egyetlen szám, amely a siker vagy a hiba tényét jelzi, míg a két kimeneti csatorna szövegesen mondja el a részleteket.
Kapcsolódó fogalmak
szabványos adatfolyamok, parancssor, operációs rendszer
standard hibakimenet
standard bemenet, kilépési kód, csővezeték, naplózás, terminál
Röviden a története
A szabványos adatfolyamok gondolata az 1970-es években, a Unix operációs rendszerben terjedt el. A külön hibakimenet az évtized közepén, a Unix hatodik kiadásában jelent meg. Azért vezették be, hogy a hibaüzenetek ne keveredjenek az eredménybe, amikor azt egy másik program dolgozza fel, hanem a felhasználó képernyőjén jelenjenek meg.
Hol tart most
Fél évszázada alapelem minden elterjedt operációs rendszerben. 2026 végén az agentek miatt újra előtérbe került: a kódoló agentek ezen a két csatornán olvassák a parancsok eredményét, és sok helyben futó, agenthez kötött eszköz is ezeken kommunikál.
Más nevei
stdout · stderr · standard output · standard error · szabványos kimenet · szabványos hibakimenet · standard hibacsatorna
Források
A szócikk gépi szerkesztéssel készült és gépi szakmai lektoráláson ment át; a „hírekben” rész az Agent Age sztorijaiból automatikusan frissül.