[Cascavel-pm] uso de flock

Ednardo Lobo ednardo em elobo.cjb.net
Sexta Julho 4 15:48:56 CDT 2003


On Fri, Jul 04, 2003 at 05:10:14PM -0300, Alceu R. de Freitas Jr. wrote:
> Olá gente,
> 
> Estou com uma dúvida quanto ao uso do flock.
> 
> Eu gostaria de  proteger um arquivo texto com essa  função à partir de
> um  CGI. Por  exemplo, enquanto  uma pessoa  estiver escrevendo  nesse
> arquivo, ou não conseguirá até o bloqueio ser removido.
>
> Eu faria mais ou menos assim:
> 
> open(FILE,">arquivo");
> flock FILE (modo);
> 
> Agora minhas dúvidas:
> 
> 1  - o  sistema operacional  respeita  esse bloqueio?  se um  processo
> qualquer  além  do  CGI  tentar  escrever  nesse  arquivo,  o  sistema
> operacional irá honrar o bloqueio?
>

    Não!!

    Você deve garantir que somente o CGI irá acessar o arquivo!
    
> 2 - eu  não quero escrever diretamente no arquivo.  Diríamos que quero
> simplesmente executar  um comando  do sistema  que escreva  algo nesse
> arquivo para mim, por exemplo:
>
> system(echo 'teste' > arquivo);
>
> Se  eu abrir  o  ponteiro para  o arquivo,  executar  flock para  esse
> ponteiro e executar o comando, o bloqueio continua valendo?
>
    
    Não!!

    O bloqueio é apenas respeitado quando você chama 'flock'!

    Se ao  chamar o  'flock' algum  outro processo  já tiver  feito isso
anteriormente, o  último processo irá  aguardar até que um  novo 'flock'
seja executado pelo  processo remanescente, liberando o  arquivo. Ou até
que o arquivo seja fechado 'close'.


-- 
    Ednardo Lobo - www.elobo.cjb.net, www.lobosnet.com

    Por favor, evitem enviar anexos no formato MS-Office, obrigado!
    Veja: http://www.fsf.org/philosophy/no-word-attachments.pt.html



Mais detalhes sobre a lista de discussão Cascavel-pm