LOCKF(3)

NOME
lockf - aplica, testa ou remove uma trava POSIX em um arquivo aberto

SINÓPSE
#include <sys/file.h>

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

DESCRIÇÃO
Aplica, testa ou remove uma trava POSIX em um arquivo aberto. O arquivo é especificado por fd. Esta chamada é apenas uma interface para fcntl(2). As operações válidas são listadas abaixo:

    F_LOCK
        Define uma trava exclusiva para o arquivo. Apenas um processo pode manter uma trava exclusiva em um determinado arquivo em um determinado momento. Se o arquivo já estiver bloqueado, ele permanecerá assim até que a trava anterior seja removida.

    F_TLOCK
        é o mesmo que F_LOCK mas jamais bloqueia e retorna um erro caso o arquivo já esteja bloqueado.

    F_ULOCK
        Desbloqueia o arquivo (remove a trava).

    F_TEST
        Testa a trava: retorna 0 caso o fd esteja desbloqueado ou bloqueado por este processo; return -1 e define errno para EACCES, caso outro processo mantenha o bloqueio.

VALORES RETORNADOS
Em caso de sucesso, devolve 0. Caso contrário, -1 é devolvido e errno é definido adequadamente.

ERROS

EAGAIN
    O arquivo está bloqueado e o sinalizador LOCK_NB foi selecionado, ou a operação está proibida pois o arquivo está sendo mapeado em memória por outro processo.

EBADF
    fd não é um descritor de arquivo aberto.

EDEADLK
    Specified lock operation would cause a deadlock.

EINVAL
    Uma operação inválida foi especificada em fd.

ENOLCK
    Muitos travas segmentadas abertas, a tabela de bloqueios está cheia.

DE ACORDO COM
SYSV.

VEJA TAMBÉM
fcntl(2), flock(2). Há também locks.txt e mandatory.txt em /usr/src/linux/Documentation.

TRADUZIDO POR LDP-BR em 30/05/2001.

  Tradução:
E. A. Tacão <tacao@conectiva.com.br>

  Revisão.:
André Luiz Fassone <lonely_wolf@ig.com.br>