Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.038 c
1-1099401614
~Shaman~
2004-11-02 16:20
2004.11.14
работа со строками


14-1098695499
Buch
2004-10-25 13:11
2004.11.14
Delpi 8


3-1098063832
sanek
2004-10-18 05:43
2004.11.14
как создать таблицу с полем memo для внесения туда текстовых данн


4-1096882304
Дмитрий Ботвин
2004-10-04 13:31
2004.11.14
Объём оперативки на сетевом компе


1-1099158946
Andruxa
2004-10-30 21:55
2004.11.14
Как сделать так, чтобы моя программа поддерживала темы Windows XP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский