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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Напрямки потоків введення/виведення за замовчуванням

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

Стандартне введення[ред.ред. код]

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

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

Стандартне виведення[ред.ред. код]

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

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

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

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

Посилання[ред.ред. код]