Мне было интересно, есть ли какой-нибудь способ определить, когда файл заканчивает запись в каталог как в Windows, так и в Linux (очевидно, это будут две разные команды).

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

3 ответа3

2
  1. Файлы не "пишут в каталоги". Данные записываются в файлы, и файлы могут быть (жестко) связаны в каталогах. Но процесс записи данных в файл не имеет ничего общего с каталогом; и процесс жесткого связывания является атомарным и не имеет "конца" для ожидания.
  2. В Windows функция, которую вы ищете, это FindFirstChangeNotification().
  3. Это тема StackOverflow, а не тема SuperUser.
1

Windows, по крайней мере, начиная с Vista, есть система планирования ввода / вывода:

Приоритизация ввода / вывода в Windows Vista.

Кроме того, современные SATA-диски в режиме AHCI имеют собственный встроенный планировщик - Native Command Queuing (NCQ).

1

Для linux вы можете взглянуть на этот вопрос, обсуждение проходило на языке c++, но идея (из ответов, а не выбранная) все еще хороша. По сути, в Linux вы можете использовать некоторые флаги или смотреть процесс /proc/pid/fd .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .