CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
lock
lock
Функция Блокирует доступ к части файла. Синтаксис #include<io.h> int lock(int handle, long offset, long length); Файл, содержащий io.h прототип Описание lock позволяет вам использовать механизм разделения доступа к файлам введенный в DOS 3.x. Перед использованием этой функции необходимо загрузить SHARE.EXE. С помощью данной функции можно заблокировать любые неперекрывающиеся области файла. Программа, пытающаяся считывать или записывать в блокированной области файла, делает три попытки. Если все три попытки окончились неудачей, то операция заканчивается по ошибке. Возвращаемое Функция возвращает 0 при успешном завершении, и значение -1 при ошибке. Переносимость Функция уникальна для систем DOS версий 3.x. Более ранние версии DOS не поддерживают этих вызовов. Смотрите также open, sopen, unlock. Пример: #include<io.h> #include<fcntl.h> #include<sys\stat.h> #include<process.h> #include<share.h> #include<stdio.h> int main(void) { int handle,status; long length; /* для поддержки разделения файлов необходимо пред- варительно загрузить SHARE.EXE. */ handle = sopen("c:\\autoexec.bat", O_RDONLY, SH_DENYNO, S_IREAD); if(!handle) { printf("Ошибка при операции sopen"); exit(1); } length = filelength(handle); status = lock(handle,0L,length/2); if(status == 0) printf("Успешная операция блокировки"); else printf("Ошибка при операции блокировки"); status = unlock(handle,0L,length/2); if(status == 0) printf("Успешная операция разблокировки"); else printf("Ошибка при операции разблокировки"); close(handle); return 0; }