Стандартные потоки
Стандартные потоки ввода-вывода в системах типа UNIX (и некоторых других) — потоки процесса, имеющие номер (дескриптор), зарезервированный для выполнения некоторых «стандартных» функций. Как правило (хотя и не обязательно), эти дескрипторы открыты уже в момент запуска задачи (исполняемого файла).
Стандартный ввод
Поток номер 0 (stdin) зарезервирован для чтения команд пользователя или входных данных.
При интерактивном запуске программы по умолчанию нацелен на чтение с устройства текстового интерфейса пользователя (клавиатуры).
Командная оболочка UNIX (и оболочки других систем) позволяют изменять цель этого потока с помощью символа «<
».
Системные программы (демоны и т. п.), как правило, не пользуются этим потоком.
Стандартный вывод
Поток номер 1 (stdout) зарезервирован для вывода данных, как правило (хотя и не обязательно) текстовых.
При интерактивном запуске программы по умолчанию нацелен на запись на устройство отображения (монитор).
Командная оболочка UNIX (и оболочки других систем) позволяют перенаправить этот поток с помощью символа «>
».
Средства для выполнения программ в фоновом режиме (например, nohup) обычно переназначают этот поток в файл.
stderr
Поток номер 2 (stderr) зарезервирован для вывода диагностических и отладочных сообщений в текстовом виде.
Чаще всего цель этого потока совпадает с stdout, однако, в отличие от него, цель потока stderr не меняется при «>
» и создании конвейеров («|
»). То есть, отладочные сообщения процесса, вывод которого перенаправлен, всё равно попадут пользователю.
Командная оболочка UNIX позволяет изменять цель этого потока с помощью конструкции «2>
».
Например, для подавления вывода этого потока нередко пишется «2>/dev/null».
Другое
В DOS использовался также номер 4 (stdprn) и выше. Современные системы используют только три стандартных потока 0, 1 и 2.
См. также
Дополнительная информация
- Стандартные потоки ввода/вывода на Xgu.ru — подробно об использовании потоков ввода/вывода в UNIX/Linux
Программирование | Это незавершённая статья о программировании. Вы можете помочь проекту, исправив и дополнив её. |
cs:Standardní proudy de:Standard-Datenströme en:Standard streams es:Entrada estándar fr:Flux standard gl:Entrada estándar it:Canali standard ja:標準ストリーム nl:Standaard stromen pl:Standardowe strumienie pt:Fluxos padrão uk:Стандартні потоки zh:標準串流
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....