Standardní proudy
From Wikipedia, the free encyclopedia
Standardní vstup, standardní výstup a standardní proudy obecně je v informatice koncept, který poskytuje každému programu sadu okamžitě použitelných rozhraní pro výstup a vstup dat, obvykle v textovém tvaru. Vychází z pozorování, že většina programů určených pro prostředí příkazového řádku potřebuje někam vypisovat své výsledky, a z myšlenky, že výstup jednoho programu je často vhodné zpracovat jiným programem. Tvůrci operačního systému Unix navrhli jednoduchý způsob, kterým může uživatel v okamžiku spuštění programu určit, na jaké zařízení má směřovat výstup programu, z jakého souboru má program číst vstupní data, případně jak si mají dva nebo více programů data předávat. Tento koncept byl převzat do dalších operačních systémů (DOS, Microsoft Windows, OpenVMS).
Standardní proudy bývají implementovány jako sada souborových deskriptorů, jež procesu (spuštěnému programu) poskytují výchozí rozhraní pro přijímání dat, předávání (produkci) dat a prezentaci nežádoucích jevů, které se při zpracování dat mohou vyskytnout, resp. které jejich řádnému zpracování mohou bránit. Existují normy zahrnující dva, tři nebo čtyři standardní proudy, v nejobvyklejším pojetí se však vyskytují standardní proudy tři — v pořadí předchozího výkladu, pojednávajícího o účelu standardních proudů, se jedná o standardní vstup (stdin), standardní výstup (stdout) a standardní chybový výstup (stderr).
Se standardními proudy se zachází jako se zařízeními znakovými, nikoli blokovými; při čtení nebo zápisu se tedy není možno vracet (číst znovu tutéž část dat nebo přepisovat jednou předaná data). Standardní proudy pracují na úrovni bajtů (nikoli zpráv) a jejich deskriptory jsou implicitně otevřené.
Velkým přínosem standardních proudů je možnost zpracování dat v koloně (dle návrhového vzoru roury a filtry).[1] Pointa je v tom, že jednotlivým programům není potřeba vysvětlovat, odkud data mají čerpat a kam je mají předávat — bodem příjmu je standardní vstup a bodem předání standardní výstup.