flock

flock -- Monitor de travamento de arquivos portátil

Descrição

bool flock ( int fp, int operation [, int wouldblock])

O PHP suporta uma maneira portável de lock arquivos inteiros em uma advisory way ( que significa que todos os programas acessando tem que usar o mesmo tipo de travamento ou não irá funcionar ) .

flock( ) opera em fp , que tem que ser um ponteiro de arquivo aberto com sucesso . operacao é um dos seguintes valores :



flock( ) permite a você fazer um simples modelo leitura / gravação (reader / writer ) que pode ser usado em virtualmente todas as plataformas (incluindo a maior parte dos Unixes e até mesmo Windows ) . O terceiro argumento opcional é usado como TRUE se a lock irá bloquear ( EWOULDBLOCK errno condition ) .

flock( ) retorna TRUE em caso de sucesso e FALSE em caso de erro (por exemplo quando um lock não pode ser obtido ) .

Nota : Uma vez que flock( ) requer um ponteiro de arquivo , você precisa utilizar um lock de arquivo especial para proteger i acessi a um arquivo ao qual você pretende truncar quando abrindo no modo de escrita (com um argumento "w " ou "w+ " em fopen( ) ) .

Atenção

flock( ) não funcionará em NFS ou em qualquer outro sistema de arquivos em rede . Verifique a documentação do seu sistema operacional para mais detalhes .

Na maior parte dos sistemas operacionais flock( ) é implementada no nível do processo . Quando utilizando um servidor com uma API de multiprocessamento ( como ISAPI) , você não pode confiar em flock( ) para proteger os arquivos contra outros scripts PHP rodando em threads paralelas da mesma instância do servidor !

flock( ) não é suportado em sistemas de arquivos antiquados como a FAT e seus derivados , e sempre retornará FALSE sob esses ambientes (especialmente para usuários do Windows 98 ) .