![]() |
|
|
![]()
|
|
| malor |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Некоторая программа-1 создала файл, периодически пишет в него данные.
Если мы в другой программе-2 вызовем
![]() Но если мы запустим программу-2 раньше чем программу-1, то CreateFile() положит в переменную значение INVALID_HANDLE_VALUE, т.к. файл еще не был создан. ![]() Затем программа-2 немного поспит (Sleep(10000)), а за это время программа-1 запустится, создаст файлик, начнет свою писанину и прочие дела. Проснувшись, программа-2 опять сделает вызов CreateFile() с целью получить валидный дескриптор, но он опять равен INVALID_HANDLE_VALUE. ![]() Почему?
MSVS 2008 Присоединённый файл ( Кол-во скачиваний: 1 )
ReadFileProject.zip 4,89 Kb |
||||
|
|||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 4 Всего: 85 |
malor, возможно дело в том, с какими флагами на шаринг открывает 1-я программа.
Если она не дает прав шаринга, то 2-я программа не сможет его открыть, пока 1-я его не закроет. нужно чтобы 1-я программа открывала файл с FILE_SHARE_WRITE или хотябы FILE_SHARE_READ где у вас код 1-ой программы? или это не ваша программа? (если так, тогда дело осложняется, и возможно серьезно осложняется!). |
|||
|
||||
| malor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
В программе-1 файл создавался так:
hFileSync := CreateFile('D:\Sync.txt', (GENERIC_READ | GENERIC_WRITE), FILE_SHARE_READ, nil, CREATE_ALWAYS, 0, 0); После прочтения фразы "You cannot request a sharing mode that conflicts with the access mode that is specified in an existing request that has an open handle." из топика Коды ошибок CreateFile - Расширенные коды ошибок он стал создаваться так: hFileSync := CreateFile('D:\Sync.txt', GENERIC_WRITE, FILE_SHARE_READ, nil, CREATE_ALWAYS, 0, 0); Вроде помогло... Это сообщение отредактировал(а) malor - 3.8.2011, 21:56 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |