(PECL eio >= 0.0.1dev)
eio_mknod — Crée un fichier spécial ou ordinaire
$path
,$mode
,$dev
,$pri
= EIO_PRI_DEFAULT,$callback
= NULL,$data
= NULLeio_mknod() crée un fichier spécial ou ordinaire.
Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.
path
Chemin du nouveau nœud (fichier).
mode
Spécifie à la fois les permissions à utiliser et le type
de nœud à créer. Il doit être une combinaison (en utilisant
l'opérateur OR) d'un des types de fichier listés ci-dessous,
et les permissions pour le nouveau nœud (i.e. 0640).
Les types de fichier possibles sont :
EIO_S_IFREG
(fichier régulier),
EIO_S_IFCHR
(fichier de caractères),
EIO_S_IFBLK
(fichier de bloc spécial),
EIO_S_IFIFO
(FIFO - nommé pipe) et
EIO_S_IFSOCK
(socket de domaine UNIX).
Pour spécifier les permissions, les constantes EIO_S_I*
doivent être utilisées.
dev
Si le type de fichier est EIO_S_IFCHR
ou
EIO_S_IFBLK
, alors ce paramètre spécifie le
nombre majeur et mineur du nouveay fichier spécial de périphérique créé.
Sinon, le paramètre dev
sera ignoré. Voir
la page du manuel de mknod(2) pour plus de détails.
pri
La priorité de la requête : EIO_PRI_DEFAULT
, EIO_PRI_MIN
, EIO_PRI_MAX
, ou null
.
Si null
est passé, le paramètre pri
, en interne, est défini à
EIO_PRI_DEFAULT
.
callback
La fonction de rappel callback
est appelée lorsque la requête est terminée.
Elle doit correspondre au prototype suivant :
void callback(mixed $data, int $result[, resource $req]);
data
représente les données personnalisées passées à la requête.
result
représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.
req
est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()
data
Variables arbitraires à passer à la fonction de rappel
callback
.
eio_mknod() retourne la ressource demandée
en cas de succès, ou false
si une erreur survient.
Exemple #1 Exemple avec eio_mknod()
<?php
// FIFO name
$temp_filename = "/tmp/eio-temp-fifo";
/* Sera appelé lorsque la fonction eio_mknod() aura terminé */
function my_mknod_callback($data, $result) {
$s = stat($data);
var_dump($s);
if ($result == 0) {
echo "eio_mknod_ok";
}
@unlink($data);
}
eio_mknod($temp_filename, EIO_S_IFIFO, 0,
EIO_PRI_DEFAULT, "my_mknod_callback", $temp_filename);
eio_event_loop();
?>
Résultat de l'exemple ci-dessus est similaire à :
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