(PECL eio >= 0.0.1dev)
eio_open — Abre um arquivo
$path,$flags,$mode,$pri,$callback,$data = NULL
eio_open() abre o arquivo especificado em
path mo modo de acesso mode.
pathCaminho do arquivo a ser aberto.
Em alguns SAPIs (ex.: PHP-FPM) pode falhar se o caminho completo não for especificado.
flagsUma das constantes EIO_O_* ou suas
combinações. Constantes EIO_O_* têm o mesmo
significado, como suas contrapartes O_*
definidas no arquivo de cabeçalho C fnctl.h. O padrão é
EIO_O_RDWR.
modeUma das constantes EIO_S_I* ou suas combinações (com operação OR binária). As constantes têm o mesmo significado de suas contrapartesS_I* definidas no arquivo de cabeçalho C » sys/stat.h. É requerido, se um arquivo for criado. Caso contrário é ignorado.
priA 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]);datasão dados personalizados passados para a requisição.
resultvalor 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.
eio_open() retorna um descritor de arquivo no argumento
result de callback
em caso de sucesso; caso contrário, result é igual a -1.
Exemplo #1 Exemplo de eio_open()
<?php
$temp_filename = "eio-temp-file.tmp";
/* Função chamada quando eio_close() termina */
function my_close_cb($data, $result) {
// Zero indica successo
var_dump($result == 0);
@unlink($data);
}
/* Função chamada quando eio_open() termina */
function my_file_opened_callback($data, $result) {
// $result deve conter o descritor de arquivo
var_dump($result > 0);
if ($result > 0) {
// Fecha o arquivo
eio_close($result, EIO_PRI_DEFAULT, "my_close_cb", $data);
eio_event_loop();
}
}
// Cria novo arquivo para leitura e escrita
// Nega acesso de grupo e outros no arquivo
eio_open($temp_filename, EIO_O_CREAT | EIO_O_RDWR, EIO_S_IRUSR | EIO_S_IWUSR,
EIO_PRI_DEFAULT, "my_file_opened_callback", $temp_filename);
eio_event_loop();
?>O exemplo acima produzirá algo semelhante a:
bool(true) bool(true)