Manpages

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 [AT] blv.br> (tradução) xxxxxxxxxxxxxxxxxxxxxxxxx <xxx [AT] xxxxxx.xx> (revisão)