Как перенаправление вывода команды в файл связано с открытием и закрытием этого файла?

Если мы перенаправляем команду, такую ​​как sar -r 1> a_file.txt , как это работает с открытием, записью выходных данных команды и закрывать файл?

Другими словами, как перенаправляет вывод команды в фоновом режиме, открывая запись и закрывая файл? (особенно такая команда, как приведенная выше, которая периодически и непрерывно отправляет данные на выход)

Мне интересно, есть ли какое-то кеширование и происходит ли некоторое сброс (запись содержимого в файл) в end

0
задан 9 June 2020 в 17:09

1 ответ

Перенаправление файлов ( , > output , 2> error ) обрабатывается родительской оболочкой. Выполненная команда ( sar в вашем примере) видит только дескриптор файла ( 0 => STDIN , 1 => STDOUT , 2 => STDERR ) и выполняет чтение / запись через дескриптор файла. Выполненная программа даже не знает, что что-то перенаправлено.

Поскольку файл (> a_file.

1
ответ дан 19 June 2020 в 21:28