SplFileObject::flock

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

SplFileObject::flockBloqueo de ficheros portable

Descripción

public SplFileObject::flock(int $operation, int &$wouldblock = ?): bool

Bloquea o desbloquea el fichero de la misma manera portable que flock().

Parámetros

operation

operation es una operación de las siguientes:

  • LOCK_SH para adquirir un bloqueo compartido (lectura).
  • LOCK_EX para adquirir un bloqueo exclusivo (escritura).
  • LOCK_UN para liberar un bloqueo (compartido o exclusivo).
  • LOCK_NB para no esperar mientras se adquiere el bloqueo.

wouldblock

Establecer a true si el bloqueo hará que la función quede esperando (condición de errno EWOULDBLOCK).

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Ejemplos

Ejemplo #1 Ejemplo de SplFileObject::flock()

<?php
$file 
= new SplFileObject("/tmp/bloqueado.txt""w");
if (
$file->flock(LOCK_EX)) { // adquirir un bloqueo exclusivo
    
$file->ftruncate(0);     // truncar el fichero
    
$file->fwrite("Escribir alguna cosa\n");
    
$file->flock(LOCK_UN);   // liberar el bloqueo    
} else {
    echo 
"¡No se pudo obtener el bloqueo!";
}
?>

Historial de cambios

Versión Descripción
5.5.22, 5.6.6 Añadido soporte para el parámetro wouldblock en Windows.
5.3.2 Se eliminó el desbloqueo automático cuando se cierra el manejador de recursos del archivo. El desbloqueo ahora siempre tiene que hacerse manualmente.

Ver también

  • flock() - Bloqueo de ficheros recomendado y portable

add a note add a note

User Contributed Notes 1 note

up
4
digitalprecision at gmail dot com
13 years ago
For the record, the example given here has an explicit command to truncate the file, however with a 'write mode' of 'w', it will do this for you automatically, so the truncate call is not needed.
To Top