ситуация следующая, есть программа А(интернет пейджер QIP, который хранит хистори в txt файлах), которая периодически пишет в файл. есть программа Б, которой нужно получать хистори QIP и отсылать на заданный сервер. программа А работает так: открываем на чтение файл хистори, смотрим, не изменился ли он, если изменился, постим изменения на сервер. спим. и так в цикле. всё бы хорошо, но с программой А возникла проблема, при работающей программе Б(открытом дескрипторе), оно отказывается писать в файл. файл на чтение открываю так: CreateFile(... , FILE_READ_DATA, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); или я не правильно понимаю атрибуты доступа или где-то хитрость QIP? сори, дебажить QIP немного лень, может быть кто-то сходу врубится и предложит вариант решения, отличный от хука WriteFile
kyprizel Можно следить за свойствами файла (размер и/или время последнего обновления) через FindFirstFile. Для этого не надо открывать файл. Если обнаружено изменение, можно скопировать хистори-файл во временный и уже временный читать/парсить/отсылать на сервер.
Quantum, ты читаешь мои мысли %))))))) я только что это реализовал но это один из вариантов, ведь файл может быть большим, а изменения маленькими и что - теперь из-за нескольких байт делать копию?
для обнаружения изменеий в файли можно заюзать FindFirstChangeNotification и FindNextChangeNotification