eio_open
(PECL eio >= 0.0.1dev)
eio_open — Ouvre un fichier
Description
$path
, int $flags
, int $mode
, int $pri
, callable $callback
[, mixed $data
= NULL
] )
eio_open() ouvre un fichier spécifié par l'argument
path
avec le mode d'accès spécifié par
l'argumentmode
.
Liste de paramètres
-
path
-
Chemin vers le fichier à ouvrir.
AvertissementAvec quelques APIs (i.e. PHP-FPM), l'appel peut échouer si vous ne spécifiez pas le chemin complet.
-
flags
-
Une constante parmi les constants EIO_O_*, ou bien une combinaison de ces constantes. Les constantes EIO_O_* ont la même signification que les constantes correspondantes O_* définies dans le fichier d'en-têtes C fnctl.h. Par défaut, vaut
EIO_O_RDWR
. -
mode
-
Une constante parmi les constantes EIO_S_I*, ou bien une combinaison de ces constantes (via l'opérateur OR). Les constantes ont la même signification que les constantes correspondantes S_I* définies dans le fichier d'en-têtes C » sys/stat.h. Requis si un fichier est créé. Sinon, il sera ignoré.
-
pri
-
La priorité de la requête :
EIO_PRI_DEFAULT
,EIO_PRI_MIN
,EIO_PRI_MAX
, ouNULL
. SiNULL
est passé, le paramètrepri
, en interne, est défini àEIO_PRI_DEFAULT
.-
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()
-
-
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
-
Variables arbitraires à passer à la fonction de rappel
callback
.
Valeurs de retour
eio_open() retourne un descripteur de fichier
dans l'argument result
de la fonction de
rappel callback
en cas de succès ;
sinon, result
vaudra -1
.
Exemples
Exemple #1 Exempe avec eio_open()
- <?php
- $temp_filename = "eio-temp-file.tmp";
- /* Sera appelé lorsque la fonction eio_close() aura terminé */
- function my_close_cb($data, $result) {
- // Zéro indique une exécution avec succès
- var_dump($result == 0);
- @unlink($data);
- }
- /* Sera appelé lorsque la fonction eio_open() aura terminé */
- function my_file_opened_callback($data, $result) {
- // $result doit contenir le descripteur de fichier
- var_dump($result > 0);
- if ($result > 0) {
- // Ferme le fichier
- eio_close($result, EIO_PRI_DEFAULT, "my_close_cb", $data);
- eio_event_loop();
- }
- }
- // Crée un nouveau fichier pour lecture et écriture
- // N'autorise pas les groupes et autres à faire ce que ce soit avec ce fichier
- eio_open($temp_filename, EIO_O_CREAT | EIO_O_RDWR, EIO_S_IRUSR | EIO_S_IWUSR,
- EIO_PRI_DEFAULT, "my_file_opened_callback", $temp_filename);
- eio_event_loop();
- ?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
bool(true) bool(true)
Voir aussi
- eio_mknod