Если мы перенаправляем команду, такую как sar -r 1> a_file.txt
, как это работает с открытием, записью выходных данных команды и закрывать файл?
Другими словами, как перенаправляет вывод команды в фоновом режиме, открывая запись и закрывая файл? (особенно такая команда, как приведенная выше, которая периодически и непрерывно отправляет данные на выход)
Мне интересно, есть ли какое-то кеширование и происходит ли некоторое сброс (запись содержимого в файл) в end
Перенаправление файлов ( ,
> output
, 2> error
) обрабатывается родительской оболочкой. Выполненная команда ( sar
в вашем примере) видит только дескриптор файла ( 0
=> STDIN
, 1
=> STDOUT
, 2
=> STDERR
) и выполняет чтение / запись через дескриптор файла. Выполненная программа даже не знает, что что-то перенаправлено.
Поскольку файл (> a_file.