Provided by: manpages-pt-dev_20040726-1_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),  no  é  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)