FLOCK(2)

NOMBRE
flock - impone o elimina un candado de recomendación (advisory lock) en un fichero abierto.

SINOPSIS
#include <sys/file.h>

int flock(int fd, int operation)

DESCRIPCIÓN
Impone o elimina un candado de recomendación en un fichero abierto. El fichero está especificado por fd. Las operaciones válidas son:

    LOCK_SH
        Shared lock (candado compartido). Más de un proceso puede tener un candado compartido para un fichero en un momento dado.

    LOCK_EX
        Exclusive lock (candado exclusivo). Solamente un proceso puede tener un candado exclusivo para un fichero en un momento dado.

    LOCK_UN
        Unlock.

    LOCK_NB
        No bloquear cuando se encadene (locking). Puede especificarse (mediante la operación or ) junto con otra de las operaciones.

Un fichero no puede tener simultaneamente candados compartido y exclusivo. Un fichero está encadenado (p.e., el nodo-i) no el descriptor de fichero. Por tanto, dup(2) y fork(2) no crean múltiples casos de un candado.

VALOR REGRESADO
En caso de éxito, cero, En caso de error -1 , y errno es asignado apropiadamente.

ERRORES

EWOULDBLOCK
    El fichero está encadenado y la bandera LOCK_NB ha sido elejida.

NOTAS
En linux, flock está implementado como una llamada a fcntl. Por favor vease fcntl(2) para más detalles sobre errores.

VÉASE
open(2), close(2), dup(2), execve(2), fcntl(2), fork(2),