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_DEFAULT锟斤拷EIO_PRI_MIN锟斤拷EIO_PRI_MAX 锟斤拷 NULL锟斤拷锟斤拷锟斤拷锟� NULL锟斤拷pri 锟斤拷锟斤拷为 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.

锟斤拷锟斤拷

Example #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_open
  • eio_write
  • eio_close
  • eio_event_loop