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)