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