stdout je datový proud, do kterého program zapisuje své výsledné informace. V technickém zápisu má tento kanál přiřazen deskriptor souboru (file descriptor) 1. Standardně je tento výstup nasměrován na obrazovku terminálu, kde jej vidí uživatel.
Když program (např. v Pythonu příkaz print()) vygeneruje text, neposílá ho přímo na monitor. Místo toho ho zapíše do proudu stdout. Operační systém pak rozhodne, kam tento proud poteče:
V shellu můžeme stdout snadno ovládat pomocí operátorů:
ls > seznam_souboru.txtecho „Nová zpráva“ » log.txtJe klíčové rozlišovat mezi „úspěšným výsledkem“ a „chybou“.
Díky tomuto oddělení můžete například uložit výsledky do souboru, ale chyby nechat vypsat na obrazovku, aby vás varovaly:
prikaz > vysledek.txt (chyby se stále vypíší na monitor)Někdy chcete uložit úplně všechno do jednoho souboru (např. pro pozdější analýzu logů). K tomu slouží konstrukce:
prikaz > log.txt 2>&1(Vysvětlení: Proud 2 (stderr) je přesměrován tam, kam teče proud 1 (stdout), a ten teče do souboru log.txt.)
Každý moderní jazyk má standardní výstup jako základní objekt:
printf(„Ahoj“); (píše do stdout)sys.stdout.write(„Text“)echo „Zpráva“Zajímavost: Existuje speciální „soubor“ /dev/null, který funguje jako černá díra. Pokud chcete, aby program na obrazovku nevypisoval vůbec nic, můžete jeho stdout zahodit:prikaz > /dev/null.