(PECL eio >= 0.0.1dev)
eio_mknod — Crear un fichero especial u ordinario
$path
, int $mode
, int $dev
[, int $pri
= EIO_PRI_DEFAULT
[, callable $callback
= NULL
[, mixed $data
= NULL
]]] )eio_mknod() crea un fichero ordinario o especial (a menudo).
Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.
path
Ruta del nuevo nodo (fichero).
mode
Especifica tanto los permisos a usar como el tipo de nodo a ser
creado. Debería ser una combinación (usando el operador OR) de uno de los
tipos de fichero listados abajo y los permisos para el nuevo nodo (p.ej. 0640).
Los tipos de ficheros posibles son: EIO_S_IFREG
(fichero regular),
EIO_S_IFCHR
(fichero de carácter),
EIO_S_IFBLK
(fichero especial de bloqueo),
EIO_S_IFIFO
(FIFO - tubería nominada) y
EIO_S_IFSOCK
(socket de dominio UNIX).
Para especificar permisos se podrían usar constantes
EIO_S_I*.
dev
Si el tipo de fichero es EIO_S_IFCHR
o
EIO_S_IFBLK
, dev especifica el número mayor y
menor del recién creado fichero especial de dispositivo. De otro modo
dev
es ignorado. Véase la página del manual mknod(2) para
más detalles.
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
.
eio_mknod() devuelve un recurso de petición en caso de éxito o FALSE
en caso de error.
Ejemplo #1 Ejemplo de eio_mknod()
<?php
// Nombre FIFO
$nombre_fichero_temp = "/tmp/eio-temp-fifo";
/* Se llama cuando eio_mknod() finaliza */
function mi_llamada_retorno_mknod($datos, $resultado) {
$s = stat($datos);
var_dump($s);
if ($resultado == 0) {
echo "eio_mknod_ok";
}
@unlink($datos);
}
eio_mknod($nombre_fichero_temp, EIO_S_IFIFO, 0,
EIO_PRI_DEFAULT, "mi_llamada_retorno_mknod", $nombre_fichero_temp);
eio_event_loop();
?>
El resultado del ejemplo sería algo similar a:
array(26) { [0]=> int(17) [1]=> int(2337608) [2]=> int(4096) [3]=> int(1) [4]=> int(1000) [5]=> int(100) [6]=> int(0) [7]=> int(0) [8]=> int(1318241261) [9]=> int(1318241261) [10]=> int(1318241261) [11]=> int(4096) [12]=> int(0) ["dev"]=> int(17) ["ino"]=> int(2337608) ["mode"]=> int(4096) ["nlink"]=> int(1) ["uid"]=> int(1000) ["gid"]=> int(100) ["rdev"]=> int(0) ["size"]=> int(0) ["atime"]=> int(1318241261) ["mtime"]=> int(1318241261) ["ctime"]=> int(1318241261) ["blksize"]=> int(4096) ["blocks"]=> int(0) } eio_mknod_ok