Главная страница
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.026 c
14-1099034917
AlexG
2004-10-29 11:28
2004.11.14
А почему на форуме обсждаются бессмысленные темы?


14-1098451206
VID
2004-10-22 17:20
2004.11.14
Генеральный поиск квартиры :)


4-1096206369
nomshar
2004-09-26 17:46
2004.11.14
Dll injection


14-1098936991
Думкин
2004-10-28 08:16
2004.11.14
С днем рождения! 28 октября!!!!


3-1097844183
Vemer
2004-10-15 16:43
2004.11.14
Необходимость наличия Primary Key