Учись программированию на C++ Builder бесплатно!

Функция


Блокирует доступ к части файла.

Синтаксис


#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 не поддерживают этих вызовов.

Пример


#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;
}

Поиск по сайту