Лучшие вопросы
Таймлайн
Чат
Перспективы
Стандартные потоки
Из Википедии, свободной энциклопедии
Remove ads
Стандартные потоки ввода-вывода в системах типа UNIX (и некоторых других) — потоки процесса, имеющие номер (дескриптор), зарезервированный для выполнения некоторых «стандартных» функций. Как правило (хотя и не обязательно), эти дескрипторы открыты уже в момент запуска задачи (исполняемого файла).
Стиль этой статьи неэнциклопедичен или нарушает нормы литературного русского языка. |
Remove ads
Стандартный ввод
Поток номер 0 (stdin) зарезервирован для чтения команд пользователя или входных данных.
При интерактивном запуске программы по умолчанию нацелен на чтение со стандартного устройства ввода (клавиатуры). Командная оболочка UNIX (и оболочки других систем) позволяют изменять цель этого потока с помощью символа «<
».
Системные программы (демоны и т. п.), как правило, не пользуются этим потоком.
Remove ads
Стандартный вывод
Поток номер 1 (stdout) зарезервирован для вывода данных, как правило (хотя и не обязательно) текстовых.
При интерактивном запуске программы по умолчанию нацелен на запись на устройство отображения (монитор).
Командная оболочка UNIX (и оболочки других систем) позволяют перенаправить этот поток с помощью символа «>
».
Средства для выполнения программ в фоновом режиме (например, nohup) обычно переназначают этот поток в файл.
Remove ads
Стандартный вывод ошибок
Поток стандартной ошибки (stderr, файловый дескриптор 2) предназначен для вывода диагностических и отладочных сообщений в текстовом формате.
Чаще всего цель этого потока совпадает с stdout, однако, в отличие от него, цель потока stderr не меняется при «>
» и создании конвейеров («|
»). То есть, отладочные сообщения процесса, вывод которого перенаправлен, всё равно попадут пользователю.
Командная оболочка UNIX позволяет изменять цель этого потока с помощью конструкции «2>
». Например, для подавления вывода этого потока нередко пишется «2>/dev/null
».
POSIX-функция обработки ошибок perror()
используется в языках программирования Си и C++ для вывода сообщения об ошибке в stderr на основе номера последней ошибки, хранящейся в errno.
Другие
В DOS можно было использовать также номер 4 (stdprn) и 5 (stdaux)[1].
См. также
Примечания
Дополнительная информация
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads