eio_read

(PECL eio >= 0.0.1dev)

eio_readRead from a file descriptor at given offset

說(shuō)明

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.

參數(shù)

fd

Stream, Socket resource, or numeric file descriptor

length

Maximum number of bytes to read.

offset

Offset within the file.

pri

請(qǐng)求的優(yōu)先級(jí):EIO_PRI_DEFAULTEIO_PRI_MIN,EIO_PRI_MAXnull。如果是 null,pri 將設(shè)為 EIO_PRI_DEFAULT。

callback

callback 函數(shù)在請(qǐng)求完成時(shí)被調(diào)用。其應(yīng)匹配一下原型:

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

傳遞給請(qǐng)求的用戶數(shù)據(jù)。

result

針對(duì)請(qǐng)求的結(jié)果的值。通常是相應(yīng)的系統(tǒng)調(diào)用返回的值。

req

可選的請(qǐng)求資源,可被 eio_get_last_error() 之類的函數(shù)使用。

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"

參見(jiàn)