Interested Article - Стандартные потоки
- 2020-06-12
- 1
Стандартные потоки ввода-вывода в системах типа 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) .
См. также
Примечания
- Ray Duncan. Advanced MS-DOS Programming. — 2nd edition. — Microsoft Press, 1988. — P. 309. — ISBN 1-55615-157-8 .
Дополнительная информация
- — подробно об использовании потоков ввода-вывода в UNIX/Linux
int main()
{
printf("Hi");
return 0;
}
|
Это
заготовка статьи
о
программировании
. Помогите Википедии, дополнив её.
|
- 2020-06-12
- 1