Функция Блокирует доступ к части файла.
Синтаксис #include
int lock(int handle, long offset, long length);
Файл, содержащий io.h
прототип
Описание lock позволяет вам использовать
механизм разделения доступа к файлам
введенный в DOS 3.x. Перед исполь-
зованием этой функции необходимо
загрузить SHARE.EXE.
С помощью данной функции можно заблокировать лю-
бые неперекрывающиеся области файла. Программа,
пытающаяся считывать или записывать в блоки-
рованной облясти файла, делает три попытки.
Если все три попытки окончились неудачей, то
операция заканчивается по ошибке.
Возвращаемое Функция возвращает 0 при успешном
значение завершении, и -1 при ошибке.
Переносимость Функция уникальна для систем DOS версий
3.x. Более ранние версии DOS не
поддерживают этих вызовов.
Смотрите также opensopenunlock
Пример:
#include
#include
#include
#include
#include
#include
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;
}