Стандартні потоки
Стандартні потоки введення/виведення в системах типу UNIX (і багато інших) — потоки процесу, що мають номер (дескриптор), зарезервований для виконання деяких «стандартних» функцій. Як правило (хоча і не обов'язково), ці дескриптори вже відкриті в момент запуску завдання[джерело?].
Стандартне введення
Потік номер 0 (stdin) зарезервовано для читання команд користувача або вхідних даних.
При інтерактивному запуску програми за умовчанням stdin націлений на читання з пристрою текстового інтерфейсу користувача (клавіатури). Командна оболонка UNIX (і оболонки інших систем) дозволяють змінювати введення цього потоку за допомогою символу «<». Системні програми (демони тощо), як правило, не користуються цим потоком.
Стандартне виведення
Потік номер 1 (stdout) зарезервовано для виведення даних, як правило (хоча і не обов'язково) текстових.
При інтерактивному запуску програми stdout за умовчанням націлений на запис на пристрій виведення (монітор). Командна оболонка UNIX (і оболонки інших систем) дозволяють скерувати цей потік за допомогою символу «>». Для виконання програм у фоновому режимі цей потік зазвичай переводять у файл.
Стандартне виведення помилок
Потік номер 2 (stderr) зарезервовано для виведення діагностики та повідомлень налаштування в текстовому вигляді. Частіше за все вивід цього потоку збігається з stdout, однак, на відміну від нього, місце призначення потоку stderr не змінюється при перепризначенні «>» і створенні конвеєрів ("|"). Тобто, повідомлення налаштування процесу, виведення яких перенаправлено, все одно потраплять користувачеві. Командна оболонка UNIX дозволяє змінювати виведення цього потоку за допомогою конструкції «2>». Наприклад, для придушення виведення цього потоку нерідко пишеться «2> /dev/null».
Посилання
- KRONOS 2.1 Reference Manual, Control Data Corporation, Part Number 60407000, 1974
- NOS Version 1 Applications Programmer's Instant, Control Data Corporation, Part Number 60436000, 1978
- Level 68 Introduction to Programming on MULTICS, Honeywell Corporation, 1981
- Evolution of the MVS Operating System, IBM Corporation, 1981
- Lions' Commentary on UNIX Sixth Edition, John Lions, ISBN 1-57398-013-7, 1977
- Console Class, .NET Framework Class Library, Microsoft Corporation, 2008
- Standard Output Definition — by The Linux Information Project (LINFO)
- Video tutorial demonstrating stdout and stderr