В некоторых случаях я слышал, что стандартный ввод по умолчанию - это клавиатура, а стандартный вывод по умолчанию - это экран, но я нахожу это довольно неточным.

Если бы это было абсолютно точно, я думаю, что такая команда, как cp file /dev /stdin, никогда не будет разрешена, и что если stdout и stderr находятся на экране, то я должен иметь возможность точно контролировать то, что он может отображать (что, кстати, звучит довольно рискованно)).

Итак, я больше хочу определить, что стандартный ввод по умолчанию - это способ, которым текущий активный терминал имеет для ввода текста от пользователя, так же, как и текущий активный терминал для отображения текста, который не является ошибкой при выполнении команды для пользователь и stderr - способ, которым текущий активный терминал показывает текст, который является ошибкой при выполнении команды для пользователя. Но даже для них это может быть не совсем точно.

Правильно ли мое определение относительно того, что конкретно представляют собой stdin, stdout и stderr в типичной системе Linux, или есть что-то, что лучше определяет, что это за вещи?

Спасибо за внимание.

0