Eio 関数
PHP Manual

eio_read

(PECL eio >= 0.0.1dev)

eio_readRead from a file descriptor at given offset.

説明

resource eio_read ( int $fd , int $length , int $offset , int $pri , callable $callback [, mixed $data = NULL ] )

eio_read() reads up to length bytes from fd file descriptor at offset. The read bytes are stored in result argument of callback.

パラメータ

fd

The file descriptor

length

Maximum number of bytes to read.

offset

Offset within the file.

pri

リクエストの優先順位。EIO_PRI_DEFAULTEIO_PRI_MINEIO_PRI_MAX あるいは NULL を指定します。 NULL を渡した場合、pri は内部的に EIO_PRI_DEFAULT となります。

callback

callback 関数が、リクエスト終了時にコールされます。 この関数のプロトタイプは、

void callback($data, $result);
に一致しなければなりません。 $data は、リクエストに渡すカスタムデータです。 $result にはリクエスト固有の結果が格納されます。基本的には、対応するシステムコールが返すそのままの値となります。

data

Arbitrary variable passed to callback.

返り値

eio_read() stores read bytes in result argument of callback function.

例1 eio_read() example

<?php
// Open a temporary file and write some bytes there
$temp_filename "eio-temp-file.tmp";
$fp fopen($temp_filename"w");
fwrite($fp"1234567890");
fclose($fp);

/* Is called when eio_read() is done */
function my_read_cb($data$result) {
    global 
$temp_filename;

 
// Output read bytes
    
var_dump($result);

 
// Close file
    
eio_close($data);
    
eio_event_loop();

 
// Remove temporary file
    
@unlink($temp_filename);
}

/* Is called when eio_open() is done */
function my_file_opened_callback($data$result) {
 
// $result should contain the file descriptor
    
if ($result 0) {
  
// Read 5 bytes starting from third
        
eio_read($result52EIO_PRI_DEFAULT"my_read_cb"$result);
        
eio_event_loop();
    } else {
  
// eio_open() failed
        
unlink($data);
    }
}

// Open the file for reading and writing
eio_open($temp_filenameEIO_O_RDWRNULL,
    
EIO_PRI_DEFAULT"my_file_opened_callback"$temp_filename);
eio_event_loop();
?>

上の例の出力は、 たとえば以下のようになります。

string(5) "34567"

参考


Eio 関数
PHP Manual