flock

FLOCK(2)                  Manual do Programador Linux                 FLOCK(2)



NOME
       flock - aplica ou remove uma trava consultiva em um arquivo aberto

SINOPSE
       #include <sys/file.h>

       int flock(int fd, int operation)

DESCRIÃÃO
       Aplica ou remove uma trava consultiva em um arquivo aberto. O arquivo
       especificado por fd.  As opereções válidas são fornecidas abaixo:


              LOCK_SH   Trava compartilhada. Mais que um processo pode
                        influênciar influenciar uma trava compartilhada para
                        um arquivo fornecido em um dado tempo.

              LOCK_EX   Trava exclusiva. Somente um processo pode influênciar
                        um trava exclusiva para um arquivo fornecido em um
                        dado tempo.

              LOCK_UN   Destrava.

              LOCK_NB   Não bloqueia quando travado. Pode ser expecificado
                        (por ou'ing) junto com uma das outra operações.


       Um arquivo não pode simultâneamente ter ambos tipos de trava:
       compartilhada e exclusiva.

       Um arquivo é travado (quer dizer, o inode), não é o descritor de
       arquivos. Assim, dup(2) e fork(2) não cria multiplas instâncias de
       uma trava.

VALORES RETORNADOS
       Em caso de sucesso, zero é retornado. Caso contrário, -1 é
       retornado, e errno é selecionado adequadamente.

ERROS
       EWOULDBLOCK
              O arquivo esta travado e o sinalizador LOCK_NB foi selecionado.

DE ACORDO COM
       4.4BSD (a chamada flock(2) apareceu primeiramente no BSD 4.2).

NOTAS
       flock(2) não trava arquivos via NFS. Use fcntl(2) : que pode trabalhar
       via NFS, fornecendo uma versão suficientemente recente do Linux e um
       servidor que suporta travamentos de arquivos.

       flock(2) e fcntl(2) tem semânticas diferentes com respeito para
       processos ramificados e dup(2).

VEJA TAMBÃM
       open(2), close(2), dup(2), execve(2), fcntl(2), fork(2), lockf(3).
       Além disso locks.txt e mandatory.txt em /usr/src/linux/Documentation.

TRADUZIDO POR LDP-BR em 21/08/2000.
       André L. Fassone Canova <lonelywolf@blv.com.br> (tradução)
       xxxxxxxxxxxxxxxxxxxxxxxxx <xxx@xxxxxx.xxx.xx> (revisão)



Linux                             11/12/1998                          FLOCK(2)