Eio eio_read

(PECL eio >= 0.0.1dev)

eio_read — 주어진 오프셋에서 파일 디스크립터에서 읽기


설명

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

eio_read()offset에서 fd 파일 디스크립터로부터 length 바이트까지 읽습니다. 읽은 바이트는 callbackresult 인수에 저장됩니다.


매개변수

fd
스트림, 소켓 리소스 또는 숫자 파일 설명자
length
읽을 최대 바이트 수입니다.
offset
파일 내 오프셋입니다.
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
callback에 전달된 임의의 변수입니다.

반환 값

eio_read()callback 함수의 result 인수에 읽은 바이트를 저장합니다.


Examples

예제 #1 eio_read() 예제

                  
<?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($result, 5, 2, EIO_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_filename, EIO_O_RDWR, NULL,
    EIO_PRI_DEFAULT, "my_file_opened_callback", $temp_filename);
eio_event_loop();
?>
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

string(5) "34567"
                

기타