eio_open

(PECL eio >= 0.0.1dev)

eio_openOuvre un fichier

Description

resource eio_open ( string $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.

Avertissement

Avec 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, ou NULL. Si NULL est passé, le paramètre pri, 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 :

  1. 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()

  1. <?php
  2. $temp_filename = "eio-temp-file.tmp";
  3.  
  4. /* Sera appelé lorsque la fonction eio_close() aura terminé */
  5. function my_close_cb($data, $result) {
  6. // Zéro indique une exécution avec succès
  7. var_dump($result == 0);
  8. @unlink($data);
  9. }
  10.  
  11. /* Sera appelé lorsque la fonction eio_open() aura terminé */
  12. function my_file_opened_callback($data, $result) {
  13. // $result doit contenir le descripteur de fichier
  14. var_dump($result > 0);
  15.  
  16. if ($result > 0) {
  17. // Ferme le fichier
  18. eio_close($result, EIO_PRI_DEFAULT, "my_close_cb", $data);
  19. eio_event_loop();
  20. }
  21. }
  22.  
  23. // Crée un nouveau fichier pour lecture et écriture
  24. // N'autorise pas les groupes et autres à faire ce que ce soit avec ce fichier
  25. eio_open($temp_filename, EIO_O_CREAT | EIO_O_RDWR, EIO_S_IRUSR | EIO_S_IWUSR,
  26. EIO_PRI_DEFAULT, "my_file_opened_callback", $temp_filename);
  27. eio_event_loop();
  28. ?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

bool(true)
bool(true)

Voir aussi

  • eio_mknod
LoadingChargement en cours