(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
]]] ) : resourceeio_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.
pathRuta 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.
priLa 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]);
datason datos personalizados pasados a la petición.
resultes el valor del resultado específico de la petición; básicamente, el valor devuelto por la correspondiente llamada al sistema.
reqes 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