eio_read
(PECL eio >= 0.0.1dev)
eio_read — Lit un descripteur de fichier à une position donnée
Description
$fd
, int $length
, int $offset
, int $pri
, callable $callback
[, mixed $data
= NULL
] )
eio_read() lit length
octets
depuis le descripteur de fichier fd
à la position
offset
. Les octets lus sont stockés dans l'argument
result
de la fonction de rappel callback
.
Liste de paramètres
-
fd
-
Un flux, une ressource de socket, ou un descripteur de fichier
-
length
-
Nombre maximal d'octets à lire.
-
offset
-
Position dans le fichier.
-
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_read() stocke les octets lus dans l'argument
result
de la fonction de rappel callback
.
Exemples
Exemple #1 Exemple avec eio_read()
<?php // Ouvre un fichier temporaire et y écrit quelques octets $temp_filename = "eio-temp-file.tmp"; $fp = fopen($temp_filename, "w"); fwrite($fp, "1234567890"); fclose($fp); /* Sera appelé lorsque la fonction eio_read() aura terminé */ function my_read_cb($data, $result) { global $temp_filename; // Affiche les octets lus var_dump($result); // Ferme le fichier eio_close($data); eio_event_loop(); // Supprime le fichier temporaire @unlink($temp_filename); } /* Sera appelé lorsque la fonction eio_open() aura terminé */ function my_file_opened_callback($data, $result) { // $result doit contenir le descripteur de fichier if ($result > 0) { // Lit 5 octets en commençant par le troisième eio_read($result, 5, 2, EIO_PRI_DEFAULT, "my_read_cb", $result); eio_event_loop(); } else { // eio_open() a échoué unlink($data); } } // Ouvre le fichier en lecture et en écriture eio_open($temp_filename, EIO_O_RDWR, NULL, EIO_PRI_DEFAULT, "my_file_opened_callback", $temp_filename); eio_event_loop(); ?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
string(5) "34567"
Voir aussi
- eio_open
- eio_write
- eio_close
- eio_event_loop