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