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

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

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

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

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

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

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

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

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

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

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

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