Provided by:
manpages-es_1.55-10_all 
NOMBRE
lockf - aplica, comprueba o elimina un bloqueo POSIX sobre un fichero
abierto
SINOPSIS
#include <sys/file.h>
int lockf(int fd, int cmd, off_t len);
DESCRIPCI'ON
Aplica, comprueba o elimina un bloqueo POSIX sobre una seccion de un
fichero abierto. El fichero esta especificado por fd, un descriptor de
fichero abierto para escritura, la accion por cmd, y la seccion
consiste en las posiciones de byte pos..pos+len-1, si len es positivo,
y pos-len..pos-1, si len es negativo, donde pos es la posicion actual
del fichero. Si len es cero, la seccion se extiende desde la posicion
actual del fichero al infinito, abarcando las posiciones actual y
futura de <<fin de fichero>>. En todos los casos, la seccion se puede
extender mas alla del <<fin de fichero>> actual.
En Linux, esta llamada es tan solo una interfaz para fcntl(2). (En
general, la relacion entre lockf y fcntl es indefinida.)
Las operaciones validas son:
F_LOCK Establece un bloqueo exclusivo en la seccion especificada del
fichero. Si (parte de) esta seccion ya esta bloqueada, la
llamada se bloquea hasta que el bloqueo anterior sea liberado.
Si esta seccion se solapa con una seccion previamente bloqueada,
ambas se fusionan. Los bloqueos sobre el fichero son liberados
tan pronto como el proceso que mantiene los bloqueos cierre
algunos descriptores de fichero para el fichero. Un proceso
hijo no hereda estos bloqueos.
F_TLOCK
Igual que F_LOCK pero la llamada nunca se bloquea y devuelve un
error en su lugar si el fichero ya esta bloqueado.
F_ULOCK
Desbloquea la seccion indicada del fichero. Esto puede provocar
que una seccion bloqueada se divida en dos secciones bloqueadas.
F_TEST Comprueba el bloqueo: devuelve 0 si la seccion especificada esta
desbloqueada o bloqueada por este proceso; devuelve -1 y asigna
a errno el valor EACCES si otro proceso mantiene un bloqueo.
VALOR DEVUELTO
En caso de exito, se devuelve cero. En caso de error, se devuelve -1 y
se modifica errno apropiadamente.
ERRORES
EAGAIN El fichero esta bloqueado y se especifico F_TLOCK o F_TEST, o se
prohibe la operacion porque el fichero ha sido ubicado en
memoria por otro proceso.
EBADF fd no es un descriptor de fichero abierto.
EDEADLK
La orden fue T_LOCK y esta operacion de bloqueo causaria una
situacion de interbloqueo.
EINVAL Se especifico una operacion invalida en fd.
ENOLCK Demasiados bloqueos de segmento abiertos, la tabla de bloqueos
esta llena.
CONFORME A
SYSV, POSIX 1003.1-2001
V'EASE TAMBI'EN
fcntl(2), flock(2)
Pueden encontrarse tambien los ficheros locks.txt y mandatory.txt en
/usr/src/linux/Documentation.