eio_open

Opens a file

&reftitle.description; `resource` `eio_open` `string` `path` `int` `flags` `int` `mode` `int` `pri` `callable` `callback` `mixed` `data` NULL

`eio_open` opens file specified by `path` in access mode `mode` with

&reftitle.parameters;

`path`

- Path of the file to be opened.

  In some SAPIs(e.g. PHP-FPM) it could fail, if you don't specify full path.

`flags`

- One of EIO_O_* constants, or their combinations. EIO_O_* constants have the same meaning, as their corresponding O_* counterparts defined in `fnctl.h` C header file. Default is `EIO_O_RDWR`.

`mode`

- One of EIO_S_I* constants, or their combination (via bitwise OR operator). The constants have the same meaning as their S_I* counterparts defined in sys/stat.h C header file. Required, if a file is created. Otherwise ignored.

`pri`

- &eio.request.pri.values;

`callback`

- &eio.callback.proto;

`data`

- Arbitrary variable passed to `callback`.

&reftitle.returnvalues;

`eio_open` returns file descriptor in `result` argument of `callback` on success; otherwise, `result` is equal to `-1`.

&reftitle.examples;

### `eio_open` example

    <?php
    $temp_filename = "eio-temp-file.tmp";

    /* Is called when eio_close() finishes */
    function my_close_cb($data, $result) {
     // Zero indicates success
        var_dump($result == 0);
     @unlink($data);
    }

    /* Is called when eio_open() finishes */
    function my_file_opened_callback($data, $result) {
     // $result should contain the file descriptor
        var_dump($result > 0);

        if ($result > 0) {
      // Close the file
            eio_close($result, EIO_PRI_DEFAULT, "my_close_cb", $data);
            eio_event_loop();
        }
    }

    // Create new file for reading and writing
    // Deny group and others to do anything with that file
    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();
    ?>

&example.outputs.similar;

    bool(true)
    bool(true)

&reftitle.seealso;

- `eio_mknod`