Uživatelské nástroje

Nástroje pro tento web


stdout

stdout (Standard Output)

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.

1. Jak stdout funguje?

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:

  • Na obrazovku: (výchozí chování) – text se vypíše do okna terminálu.
  • Do souboru: – pomocí přesměrování se výstup uloží do textového dokumentu.
  • Do dalšího programu: – pomocí pipeline se data předají jako vstup dalšímu nástroji.

2. Přesměrování výstupu (Redirection)

V shellu můžeme stdout snadno ovládat pomocí operátorů:

  • Znak `>` (Přepsání): Uloží výstup do souboru. Pokud soubor existuje, jeho obsah se smaže.
    • Příklad: ls > seznam_souboru.txt
  • Znak `»` (Připojení): Přidá výstup na konec existujícího souboru.
    • Příklad: echo „Nová zpráva“ » log.txt

3. Rozdíl mezi stdout a stderr

Je klíčové rozlišovat mezi „úspěšným výsledkem“ a „chybou“.

  • stdout (1): Obsahuje data, která jste od programu chtěli (např. seznam souborů).
  • stderr (2): Obsahuje pouze chybová hlášení (např. „přístup odepřen“).

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)

4. Spojování stdout a stderr

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.)

5. stdout v programování

Každý moderní jazyk má standardní výstup jako základní objekt:

  • C: printf(„Ahoj“); (píše do stdout)
  • Python: sys.stdout.write(„Text“)
  • Bash: 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.

Zpět na Linux

stdout.txt · Poslední úprava: autor: admin