Provided by: manpages-pt-dev_20040726-4_all bug

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)