Основные принципы работы с файлами stdin, stdout и stderr в современных языках программирования:
- STDIN — стандартный поток ввода оболочки. 1 Для терминала стандартный ввод — это клавиатура. 1 Когда в сценариях используют символ перенаправления ввода — <, система читает файл и обрабатывает данные так, будто они введены с клавиатуры. 1
- STDOUT — стандартный поток вывода оболочки. 1 По умолчанию это — экран. 1 Большинство команд выводят данные в STDOUT, что приводит к их появлению в консоли. 1 Данные можно перенаправить в файл, присоединяя их к его содержимому, для этого служит команда >>. 1
- STDERR — стандартный поток ошибок оболочки. 1 По умолчанию этот дескриптор указывает на то же самое, на что указывает STDOUT, именно поэтому при возникновении ошибки мы видим сообщение на экране. 1 Сообщения об ошибках можно перенаправить в лог-файл или куда-нибудь ещё, разместив дескриптор файла STDERR перед командой перенаправления. 1
Эти указатели можно использовать в качестве аргументов для функций. 2 Функцию freopen можно использовать, чтобы перенаправить потоки в файлы на диске или на другие устройства. 2