Как мне прочитать файл, пока кто-нибудь не попытается записать в него? - PullRequest
0 голосов
/ 28 января 2012

В моей файловой системе есть файл, который мне нужно, чтобы моя программа читала как можно чаще.Когда файл изменяется, он копирует все изменения в буфер и затем очищает файл.

Этот файл будет иногда записываться другой программой.

Дело в том,Вы не можете одновременно читать и записывать в один файл.Как сделать так, чтобы моя программа проверяла файл как можно чаще, и в то же время позволяла другим программам писать в него?

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

Спасибо!

Ответы [ 2 ]

4 голосов
/ 28 января 2012

Попробуйте API FindFirstChangeNotification (). Помимо прочего, он позволяет узнать, когда файл был изменен.

0 голосов
/ 28 января 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...