Стандартные потоки

Стандартные потоки

Стандартные потоки ввода-вывода в системах типа UNIX (и некоторых других) — потоки процесса, имеющие номер (дескриптор), зарезервированный для выполнения некоторых «стандартных» функций. Как правило (хотя и не обязательно), эти дескрипторы открыты уже в момент запуска задачи (исполняемого файла).

Содержание

Стандартный ввод

Поток номер 0 (stdin) зарезервирован для чтения команд пользователя или входных данных.

При интерактивном запуске программы по умолчанию нацелен на чтение с устройства текстового интерфейса пользователя (клавиатуры). Командная оболочка UNIX (и оболочки других систем) позволяют изменять цель этого потока с помощью символа «<». Системные программы (демоны и т. п.), как правило, не пользуются этим потоком.

Стандартный вывод

Поток номер 1 (stdout) зарезервирован для вывода данных, как правило (хотя и не обязательно) текстовых.

При интерактивном запуске программы по умолчанию нацелен на запись на устройство отображения (монитор). Командная оболочка UNIX (и оболочки других систем) позволяют перенаправить этот поток с помощью символа «>». Средства для выполнения программ в фоновом режиме (например, nohup) обычно переназначают этот поток в файл.

Стандартный вывод ошибок

Поток номер 2 (stderr) зарезервирован для вывода диагностических и отладочных сообщений в текстовом виде.

Чаще всего цель этого потока совпадает с stdout, однако, в отличие от него, цель потока stderr не меняется при «>» и создании конвейеров («|»). То есть, отладочные сообщения процесса, вывод которого перенаправлен, всё равно попадут пользователю. Командная оболочка UNIX позволяет изменять цель этого потока с помощью конструкции «2>». Например, для подавления вывода этого потока нередко пишется «2>/dev/null».

POSIX-функция обработки ошибок perror используется в языках программирования Си и C++ для вывода сообщения об ошибке в stderr на основе номера последней ошибки, хранящейся в errno.

Другие

В DOS можно было использовать также номер 4 (stdprn) и 5 (stdaux)[1].

См. также

Примечания

  1. Ray Duncan Advanced MS-DOS Programming. — 2nd edition. — Microsoft Press, 1988. — P. 309. — ISBN 1-55615-157-8

Дополнительная информация



Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "Стандартные потоки" в других словарях:

  • STDOUT — Стандартные потоки ввода вывода в системах типа потоки процесса, имеющие номер (дескриптор), зарезервированный для выполнения некоторых «стандартных» функций. Как правило (хотя и не обязательно), эти дескрипторы открыты уже в момент запуска… …   Википедия

  • Stdin — Стандартные потоки ввода вывода в системах типа потоки процесса, имеющие номер (дескриптор), зарезервированный для выполнения некоторых «стандартных» функций. Как правило (хотя и не обязательно), эти дескрипторы открыты уже в момент запуска… …   Википедия

  • Stderr — Стандартные потоки ввода вывода в системах типа потоки процесса, имеющие номер (дескриптор), зарезервированный для выполнения некоторых «стандартных» функций. Как правило (хотя и не обязательно), эти дескрипторы открыты уже в момент запуска… …   Википедия

  • Stdout — Стандартные потоки ввода вывода в системах типа потоки процесса, имеющие номер (дескриптор), зарезервированный для выполнения некоторых «стандартных» функций. Как правило (хотя и не обязательно), эти дескрипторы открыты уже в момент запуска… …   Википедия

  • Перенаправление (UNIX) — У этого термина существуют и другие значения, см. Перенаправление. В информатике перенаправление  это возможность присущая многим командным оболочкам, таким как командные оболочки UNIX, позволяющая перенаправлять стандартные потоки в… …   Википедия

  • Перенаправление (программное обеспечение) — У этого термина существуют и другие значения, см. Перенаправление. В информатике перенаправление  это возможность присущая многим командным оболочкам, таким как командные оболочки UNIX, позволяющая перенаправлять стандартные потоки в… …   Википедия

  • Поток (программирование) — Поток ( en. stream) абстрактная последовательность инструкций или данных вообще, привязанная к соответствующему дескриптору (может быть представлен именем потока).Потоки являются удобным унифицированным программным интерфейсом для чтения или… …   Википедия

  • Поток данных — У этого термина существуют и другие значения, см. Поток. Не следует путать с Многопоточность. Поток данных (англ. stream) в программировании  абстракция, используемая для чтения или записи файлов, сокетов и т. п. в единой… …   Википедия

  • Стандартная библиотека Python — Богатая стандартная библиотека является одной из привлекательных сторон языка программирования Python. Здесь имеются средства для работы со многими сетевыми протоколами и форматами интернета, например, модули для написания HTTP серверов и… …   Википедия

  • Printf — printf  обобщённое название семейства функций или методов стандартных или широкоизвестных коммерческих библиотек, или встроенных операторов некоторых языков программирования, используемых для форматного вывода  вывода в различные потоки …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»