(PECL eio >= 0.0.1dev)
eio_mknod — Crear un fichero especial u ordinario
$path,$mode,$dev,$pri = EIO_PRI_DEFAULT,$callback = NULL,$data = NULLeio_mknod() crea un fichero ordinario o especial (a menudo).
Esta función está actualmente no documentada; solo la lista de sus argumentos está disponible.
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 la petición: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, o null.
Si null es pasado, el parámetro pri, internamente, es definido a
EIO_PRI_DEFAULT.
callback
La función de retrollamada callback
es llamada cuando la petición está terminada.
Debe corresponder al siguiente prototipo:
void callback(mixed $data, int $result[, resource $req]);datarepresenta los datos personalizados pasados a la petición.
resultrepresenta el valor resultante específico de la petición; básicamente, el valor retornado por la llamada al sistema correspondiente.
reqes el recurso opcional de la petición que puede ser utilizado 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 si ocurre un 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();
?>Resultado del ejemplo anterior es 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