> For the complete documentation index, see [llms.txt](https://dimitar-minchev.gitbook.io/linux-system-programming/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dimitar-minchev.gitbook.io/linux-system-programming/01_linux_basics/11_streams.md).

# Стандартни потоци

В общия случай, компютърните програми получават входна информация (*клавиатура, файл и т.н.*), обработва я и извежда резултат, под формата на изходната информация (*файлове, текст, изображение и т.н.*). За стандартните конзолни приложения, входните данни се въвеждат от клавиатурата на компютъра, а изходните данни се извеждат на текстов екран.

В този модел на вход и изход на данните, не е известно предварително колко и какви данни ще бъдат получени от потребителите и съответно изведени като резултат. Такъв тип вход и изход се наричат текстови **потоци** (*Термин на Английски език: streams*).

Всяка програма, която изпълняваме на командния ред в Линукс, е свързана автоматично към три потока от данни:

| поток      | информация                                                                                 |
| ---------- | ------------------------------------------------------------------------------------------ |
| STDIN (0)  | Стандартен вход (данни, подадени в програмата, по подразбиране от клавиатурата)            |
| STDOUT (1) | Стандартен изход (данни, отпечатани от програмата, по подразбиране към текстовия терминал) |
| STDERR (2) | Стандартна грешка (за съобщения за грешки, по подразбиране към текстовия терминал)         |

![11\_streams.png](https://3813375884-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M50WMlRW6PAqn4gpp-_%2F-M50WNBN2Cvs5pia3MN7%2F-M50WQy2XOtFHdRl2AdR%2F11.png?generation=1587015974441122\&alt=media)
