[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