DOKK / manpages / debian 10 / manpages-pt-dev / flock.2.pt
FLOCK(2) Manual do Programador Linux FLOCK(2)

flock - aplica ou remove uma trava consultiva em um arquivo aberto

#include <sys/file.h>

int flock(int fd, int operation)

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.

Em caso de sucesso, zero é retornado. Caso contrário, -1 é retornado, e errno é selecionado adequadamente.

O arquivo esta travado e o sinalizador LOCK_NB foi selecionado.

4.4BSD (a chamada flock(2) apareceu primeiramente no BSD 4.2).

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).

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.

André L. Fassone Canova <lonelywolf@blv.com.br> (tradução) xxxxxxxxxxxxxxxxxxxxxxxxx <xxx@xxxxxx.xxx.xx> (revisão)

11/12/1998 Linux