Scroll to navigation

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:

Trava compartilhada. Mais que um processo pode influênciar influenciar uma trava compartilhada para um arquivo fornecido em um dado tempo.
Trava exclusiva. Somente um processo pode influênciar um trava exclusiva para um arquivo fornecido em um dado tempo.
Destrava.
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

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)

11/12/1998 Linux