RAD Studio
ContentsIndex
PreviousUpNext
lock

Header File 

io.h  

Category 

Input/output Routines 

Prototype 

int lock(int handle, long offset, long length); 

Description 

Sets file-sharing locks. 

lock provides an interface to the operating system file-sharing mechanism. 

A lock can be placed on arbitrary, nonoverlapping regions of any file. A program attempting to read or write into a locked region will retry the operation three times. If all three retries fail, the call fails with an error. 

Return Value 

lock returns 0 on success. On error, lock returns -1 and sets the global variable errno to

EACCES 
Locking violation 

Example

#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;
   handle = _sopen("c:\\autoexec.bat",
      O_RDONLY,SH_DENYNO,S_IREAD);
   if (handle < 0)
   {
      printf("_sopen failed\n");
      exit(1);
   }
   length = filelength(handle);
   status = lock(handle,0L,length/2);
   if (status == 0)
      printf("lock succeeded\n");
   else
      printf("lock failed\n");
   status = unlock(handle,0L,length/2);
   if (status == 0)
      printf("unlock succeeded\n");
   else
      printf("unlock failed\n");
   close(handle);
   return 0;
}

Portability

POSIX 
Win32 
ANSI C 
ANSI C++ 
 
 
 
Copyright(C) 2008 CodeGear(TM). All Rights Reserved.
What do you think about this topic? Send feedback!