Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LOCKF(3)		   Linux Programmer's Manual		      LOCKF(3)

NAME
       lockf - apply, test or remove a POSIX lock on an	open file

SYNOPSIS
       #include	<sys/file.h>

       int lockf(int fd, int cmd, off_t	len);

DESCRIPTION
       Apply,  test  or	remove a POSIX lock on a section of an open file.  The
       file is specified by fd,	a file descriptor open for writing, the	action
       by  cmd,	 and  the section consists of byte positions pos..pos+len-1 if
       len is positive,	and pos-len..pos-1 if len is negative,	where  pos  is
       the current file	position, and if len is	zero, the section extends from
       the current file	position to infinity, encompassing the present and fu-
       ture  end-of-file positions.  In	all cases, the section may extend past
       current end-of-file.

       On Linux, this call is just an interface	for  fcntl(2).	 (In  general,
       the relation between lockf and fcntl is unspecified.)

       Valid operations	are given below:

       F_LOCK Set  an exclusive	lock on	the specified section of the file.  If
	      (part of)	this section is	already	locked,	the call blocks	 until
	      the previous lock	is released.  If this section overlaps an ear-
	      lier locked section, both	are merged.  File locks	 are  released
	      as  soon	as  the	process	holding	the locks closes some file de-
	      scriptor for the file. A child process does  not	inherit	 these
	      locks.

       F_TLOCK
	      Same  as	F_LOCK	but the	call never blocks and returns an error
	      instead if the file is already locked.

       F_ULOCK
	      Unlock the indicated section of the  file.   This	 may  cause  a
	      locked section to	be split into two locked sections.

       F_TEST Test  the	lock: return 0 if the specified	section	is unlocked or
	      locked by	this process; return -1, set errno to EACCES,  if  an-
	      other process holds a lock.

RETURN VALUE
       On  success,  zero is returned.	On error, -1 is	returned, and errno is
       set appropriately.

ERRORS
       EAGAIN The file is locked and F_TLOCK or	F_TEST was specified,  or  the
	      operation	 is prohibited because the file	has been memory-mapped
	      by another process.

       EBADF  fd is not	an open	file descriptor.

       EDEADLK
	      The command was T_LOCK and this lock  operation  would  cause  a
	      deadlock.

       EINVAL An invalid operation was specified in fd.

       ENOLCK Too many segment locks open, lock	table is full.

CONFORMING TO
       SYSV, POSIX 1003.1-2001

SEE ALSO
       fcntl(2), flock(2)
       There are also locks.txt	and mandatory.txt in /usr/src/linux/Documenta-
       tion.

Linux 2.0			  2002-04-22			      LOCKF(3)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | CONFORMING TO | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=lockf&sektion=3&manpath=Red+Hat+9>

home | help