SplFileObject::flock

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::flockBloqueio de arquivo portável

Descrição

public SplFileObject::flock(int $operation, int &$wouldBlock = null): bool

Bloqueia ou desbloqueia o arquivo da mesma forma portável que flock().

Parâmetros

operation

operation é uma das seguintes:

  • LOCK_SH para adquirir um bloqueio compartilhado (leitor).
  • LOCK_EX para adquirir um bloqueio exclusivo (escritor).
  • LOCK_UN para liberar um bloqueio (compartilhado ou exclusivo).

Também é possível adicionar LOCK_NB como uma máscara de bits para uma das operações acima, se flock() não deve bloquear durante a tentativa de bloqueio.

wouldBlock

Definido como true se o bloqueio bloqueasse (condição de errno EWOULDBLOCK).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Example #1 Exemplo de SplFileObject::flock()

<?php
$file = new SplFileObject("/tmp/lock.txt", "w");
if ($file->flock(LOCK_EX)) { // do an exclusive lock
    $file->ftruncate(0);     // truncate file
    $file->fwrite("Write something here\n");
    $file->flock(LOCK_UN);   // release the lock
} else {
    echo "Couldn't get the lock!";
}
?>

Veja Também

  • flock() - Travamento consultivo portável de arquivo