Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
ВнизОбщий доступ к файлам Найти похожие ветки
← →
Павел (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c