Здравствуйте, mikhail_k, Вы писали:
_>Возникла проблема: _>Процесс A открыл файл для записи. _>Процессу B необходимо открыть этот же файл для чтения.
_>Вызов hFile = CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); в процессе _>B возвращает INVALID_HANDLE_VALUE.
_>Может быть все дело с флагами SHARE ? _>Заранее благодарен.
_>Процесс A открыл файл для записи.
Покажи как?
С уважением!
Здравствуйте, mikhail_k, Вы писали:
_>Возникла проблема: _>Процесс A открыл файл для записи. _>Процессу B необходимо открыть этот же файл для чтения.
_>Вызов hFile = CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); в процессе _>B возвращает INVALID_HANDLE_VALUE.
_>Может быть все дело с флагами SHARE ? _>Заранее благодарен.
A)
CreateFile(filename, GENERIC_WRIRE, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
B)
CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
Это если А закроет файл и не захочет больше открывать пока его не закроет B
или
CreateFile(filename, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
Это если А закроет файл а потом захочет опять открыть пока его все еще читает И
Здравствуйте, SergH, Вы писали:
SH>Скорее всего ты прав. Хотя что-то мне в таком варианте не нравится.. Вот я и перестраховался.
У Рихтера про открытие файла интересно написано. Получается, что в твоем варианте файл еще можно открыть (правда, только для чтения), а в моем — нет...