Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

Общий доступ к файлам   Найти похожие ветки 

 
Павел   (2004-10-27 21:47) [0]

Есть программа, обрабатывающие файлы, а есть программа генерящая эти файлы.

Собственно вопрос: могут ли возникнуть конфликты между программами?


 
Rouse_ ©   (2004-10-27 21:52) [1]

Если использовать синхронизацию, то ничего не будет.
CreateMutex... и т.п.


 
Gero ©   (2004-10-27 21:55) [2]


> могут ли

Могут.


 
Павел   (2004-10-27 21:57) [3]

А если доступен код только одного приложения?


 
panov ©   (2004-10-27 22:00) [4]

>Павел   (27.10.04 21:47)

Кроме коллизий при одновременном доступе к файлу может возникнуть еще такая ситуация: первая программа пишет файл с DENY_SHARE_NONE(например). Не дожидаясь окончания записи вторая программа читает файл, и получает искаженную информацию.

Для решения такой проблемы нужно выполнить следующие условия:
1. "Писатель" открывает файл на все время записи в исключительное использование.
2. "Читатель" обрабатывает ошибку при открытии файла и пытается его читать позже - через некоторое время.


 
panov ©   (2004-10-27 22:08) [5]

>Rouse_ ©   (27.10.04 21:52) [1]

Если использовать синхронизацию, то ничего не будет.
CreateMutex... и т.п.


К сожалению, для каждого файла из каталога со 100000 файлов мьютекс не создашь-)


 
Rouse_ ©   (2004-10-27 23:26) [6]

> [5] panov ©   (27.10.04 22:08)
Да вот те здрасте, а ктож говорит про "для каждого файла"?

Одна же программа генерит. Не будет же она генерить одновременно все эти файлы?
Соответственно блокируем доступ к файлу на момент генерации, потом блокируем момент его обработки...


 
Rouse_ ©   (2004-10-27 23:28) [7]

> "Читатель" обрабатывает ошибку при открытии файла и пытается
> его читать позже - через некоторое время.

А как узнать это время? По таймеру? ;)
А если писатель опять захотел туда записать? ;)


 
Defunct ©   (2004-10-27 23:41) [8]

Rouse_ ©   (27.10.04 23:28) [7]

Не помимаю что в этом смешного?

> А как узнать это время? По таймеру?
Да по таймеру. Так даже Ethernet CSMA-CA коллизии предотвращает.


> А если писатель опять захотел туда записать?
Тогда придется ждать до тех пор пока писатель запишет все, что хотел записать.



Страницы: 1 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
1-1099400578
Strimer
2004-11-02 16:02
2004.11.14
Возможно ли разместить вертикальный текст на кнопке?


9-1090425892
Evgeniy_K
2004-07-21 20:04
2004.11.14
Шрифт


14-1098841702
Думкин
2004-10-27 05:48
2004.11.14
С днем рождения! 27 октября


6-1094132328
Dextor
2004-09-02 17:38
2004.11.14
Небольшая проблемка с процедурой вызванной из Dll на лок. тачке


1-1099106540
AZ
2004-10-30 07:22
2004.11.14
Недоступность значения свойства типа массив