В Linux почти всё взаимодействие построено вокруг файловых дескрипторов. Поэтому стандартный ввод, вывод и ошибки тоже доступны через специальные файлы в
/dev.Например, программа может читать данные из стандартного ввода:
$ cat /dev/stdin
cat читает текущий stdin процесса. Это может быть терминал, pipe или перенаправленный поток.Например, можно сравнить файл с данными, которые приходят напрямую:
$ generate_config | diff config.old /dev/stdin
Без создания временных файлов:
$ echo "new_value=true" | diff config.old /dev/stdin
Также доступны стандартный вывод и ошибки:
$ echo "hello" > /dev/stdout
$ echo "error" > /dev/stderr
Это удобно в shell-автоматизации, когда программа умеет работать с потоками, но ожидает путь к файлу.
🔥
/dev/stdin, /dev/stdout и /dev/stderr — это удобные ссылки на файловые дескрипторы текущего процесса, которые помогают соединять программы без лишних временных файлов.🚪 Linux Ready | #совет
