Read from a file descriptor at given offset

eio_read

(PECL eio >= 0.0.1dev)

eio_readRead from a file descriptor at given offset

說明

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

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

參數

fd

Stream, Socket resource, or numeric file descriptor

length

Maximum number of bytes to read.

offset

Offset within the file.

pri

請求的優先順序:EIO_PRI_DEFAULTEIO_PRI_MINEIO_PRI_MAXnull。如果是 nullpri 將設為 EIO_PRI_DEFAULT

callback

callback 函式在請求完成時被呼叫。其應匹配一下原型:

void callback(mixed $data, int $result[, resource $req]);
data

傳遞給請求的用戶數據。

result

針對請求的結果的值。通常是相應的系統呼叫返回的值。

req

可選的請求資源,可被 eio_get_last_error() 之類的函式使用。

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"

參見

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *