CakeFest 2024: The Official CakePHP Conference

eio_open

(PECL eio >= 0.0.1dev)

eio_openAbrir un fichero

Descripción

eio_open(
    string $path,
    int $flags,
    int $mode,
    int $pri,
    callable $callback,
    mixed $data = NULL
): resource

eio_open() abre el archivo especificado por path en el modo de acceso mode con

Parámetros

path

Ruta del archivo a abrir.

Advertencia

En algunas SAPIs (p.ej. PHP-FPM) podría fallar si no se especifica la ruta completa.

flags

Una de las constantes EIO_O_*, o sus combinaciones. Las constantes EIO_O_* tienen el mismo significado que sus correspondientes homónimas O_* definidas en el fichero de cabecera C fnctl.h. Por defecto es EIO_O_RDWR.

mode

Una de las constantes EIO_S_I*, o sus combinaciones (mediante el operador a nivel de bits OR). Las constantes tienen el mismo significado que sus homónimas S_I* definidas en el archivo de cabecera C » sys/stat.h. Necesario si se crea un fichero. En otro caso es ignorado.

pri

La prioridad de petición: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, o null. Si se pasa null, pri es establecido internamente a EIO_PRI_DEFAULT.

callback

La función callback es llamada cuando la petición está hecha. Debería seguir el siguiente prototipo:

void callback(mixed $data, int $result[, resource $req]);
data

son datos personalizados pasados a la petición.

result

es el valor del resultado específico de la petición; básicamente, el valor devuelto por la correspondiente llamada al sistema.

req

es el recurso de petición opcional que puede usarse con funciones como eio_get_last_error()

data

Variable arbitraria pasada a callback.

Valores devueltos

eio_open() devuelve un descriptor de fichero en el argumento result de callback en caso de éxito; de otro modo, result es igual a -1.

Ejemplos

Ejemplo #1 Ejemplo de eio_open()

<?php
$nombre_fichero_temp
= "eio-fichero-temp.tmp";

/* Se llama cuando eio_close() finaliza */
function my_close_cb($datos, $resultado) {
// Cero indica éxito
var_dump($resultado == 0);
@
unlink($datos);
}

/* Se llama cuando eio_open() finaliza */
function mi_llamada_retorno_fichero_abierto($datos, $resultado) {
// $resultado debería contener el descriptor de fichero
var_dump($resultado > 0);

if (
$resultado > 0) {
// Cerrar el fichero
eio_close($resultado, EIO_PRI_DEFAULT, "my_close_cb", $datos);
eio_event_loop();
}
}

// Crear un nuevo fichero para lectura y escritura
// Denegar al grupo y a otros realizar cualquier cosa con ese fichero
eio_open($nombre_fichero_temp, EIO_O_CREAT | EIO_O_RDWR, EIO_S_IRUSR | EIO_S_IWUSR,
EIO_PRI_DEFAULT, "mi_llamada_retorno_fichero_abierto", $nombre_fichero_temp);
eio_event_loop();
?>

El resultado del ejemplo sería algo similar a:

bool(true)
bool(true)

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top