Функция Блокирует доступ к части файла.
Синтаксис #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;
}
|