Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > блокировка чтения/записи файла


Автор: MelissaG 10.5.2010, 20:44
Подскажите, плиз. Как реализовать программу на C++ для Windows, иллюстрирующую блокировки чтения и записи, устанавливаемые на файл. Реализовать в виде программы, в диалоге устанавливающей заданный тип блокировки на основе запроса на чтение или запись текста с заданой позиции. 

Автор: GoldFinch 11.5.2010, 11:53
Есть средства позволяющие запретить тот или иной доступ к файлу целиком - это например
CreateFile(..., FILE_SHARE_READ, ...);
при этом программа заблокировавшая файл должна постоянно работать.

Чтобы заблокировать доступ к части файла - нормальных средств нет. Можно только глобально перехватить операции работы с файлами, но это сложно. Уточните ваше задание там где вы его получили.

Автор: MelissaG 11.5.2010, 12:02
К сожалению... задание звучит имеенно так как  написано(.  Уже все что могла перерыла - ничего найти не могу...

Автор: GoldFinch 11.5.2010, 12:08
хм.. я не так его прочитал
"блокировки на основе запроса на чтение или запись текста с заданой позиции"
а я прочитал "блокировки запроса ... с заданой позиции"

Все равно средствами API системы, блокировка ставится путем открытия файла с соответствующей блокировкой, чтение\запись тут ни при чем.

Автор: xvr 11.5.2010, 13:59
См функцию http://msdn.microsoft.com/en-us/library/aa365202%28v=VS.85%29.aspx

Автор: GoldFinch 11.5.2010, 14:04
Цитата(xvr @  11.5.2010,  14:59 Найти цитируемый пост)
LockFile 

надо же, не знал. но она все равно не мешает читать файл

Автор: xvr 11.5.2010, 14:16
Цитата(GoldFinch @  11.5.2010,  14:04 Найти цитируемый пост)

надо же, не знал. но она все равно не мешает читать файл 
LockFileEx (с LOCKFILE_EXCLUSIVE_LOCK) помешает

Автор: MelissaG 11.5.2010, 18:20
спасибки smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)