Лучшие вопросы
Таймлайн
Чат
Перспективы

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

Из Википедии, свободной энциклопедии

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

См. также

Примечания

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

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads