eio_read

(PECL eio >= 0.0.1dev)

eio_readLê um descritor de arquivo em determinada posição

Descrição

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

eio_read() lê até length bytes do descrito de arquivo fd na posição offset. Os bytes lidos são armazenados no argumento result de callback.

Parâmetros

fd

Fluxo, recurso de socket ou descritor numérico de arquivo.

length

Número máximo de bytes para leitura.

offset

Posição no arquivo.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

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

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error().

data

Variável arbitrária passada para callback.

Valor Retornado

eio_read() armazena os bytes lidos no argumento result da funcão callback.

Exemplos

Exemplo #1 Exemplo de eio_read()

<?php
// Abre um arquivo temporário e escreva alguns bytes nele
$temp_filename = "eio-temp-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "1234567890");
fclose($fp);

/* Função chamada quando eio_read() termina */
function my_read_cb($data, $result) {
global
$temp_filename;

// Mostra os bytes lidos
var_dump($result);

// Fecha o arquivo
eio_close($data);
eio_event_loop();

// Remove o arquivo temporário
@unlink($temp_filename);
}

/* Função chamada quando eio_open() termina */
function my_file_opened_callback($data, $result) {
// $result deve conter o descritor de arquivo
if ($result > 0) {
// Lê 5 bytes iniciando do terceiro
eio_read($result, 5, 2, EIO_PRI_DEFAULT, "my_read_cb", $result);
eio_event_loop();
} else {
// eio_open() falhou
unlink($data);
}
}

// Abre o arquivo para leitura e gravação
eio_open($temp_filename, EIO_O_RDWR, NULL,
EIO_PRI_DEFAULT, "my_file_opened_callback", $temp_filename);
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

string(5) "34567"

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top