Стандартні потоки

Стандартні потоки введення/виведення в системах типу UNIX (і багато інших) потоки процесу, що мають номер (дескриптор), зарезервований для виконання деяких «стандартних» функцій. Як правило (хоча і не обов'язково), ці дескриптори вже відкриті в момент запуску завдання[джерело?].

Напрямки потоків введення/виведення за умовчанням

Стандартне введення

Потік номер 0 (stdin) зарезервовано для читання команд користувача або вхідних даних.

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

Стандартне виведення

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

При інтерактивному запуску програми stdout за умовчанням націлений на запис на пристрій виведення (монітор). Командна оболонка UNIX (і оболонки інших систем) дозволяють скерувати цей потік за допомогою символу «>». Для виконання програм у фоновому режимі цей потік зазвичай переводять у файл.

Стандартне виведення помилок

Потік номер 2 (stderr) зарезервовано для виведення діагностики та повідомлень налаштування в текстовому вигляді. Частіше за все вивід цього потоку збігається з stdout, однак, на відміну від нього, місце призначення потоку stderr не змінюється при перепризначенні «>» і створенні конвеєрів ("|"). Тобто, повідомлення налаштування процесу, виведення яких перенаправлено, все одно потраплять користувачеві. Командна оболонка UNIX дозволяє змінювати виведення цього потоку за допомогою конструкції «2>». Наприклад, для придушення виведення цього потоку нерідко пишеться «2> /dev/null».

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.