Provided by: manpages-es_1.55-10_all bug

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.