Create a hardlink for file

- « eio_init

- eio_lstat »

- PHP Manual
- Eio Functions
- Create a hardlink for file

# eio_link

(PECL eio >= 0.0.1dev)

eio_link — Create a hardlink for file

### Description

eio_link(
string `$path`,
string `$new_path`,
int `$pri` = EIO_PRI_DEFAULT,
callable `$callback` = NULL,
mixed `$data` = NULL
): resource

eio_link() creates a hardlink `new_path` for a file specified by `path`.

### Parameters

`path`

  Source file path.

`new_path`

  Target file path.

`pri`

  The request priority: `EIO_PRI_DEFAULT`, `EIO_PRI_MIN`, `EIO_PRI_MAX`, or `null`. If `null` passed, `pri` internally is set to `EIO_PRI_DEFAULT`.

`callback`

  `callback` function is called when the request is done. It should match the following prototype:

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

  `data`

    is custom data passed to the request.

  `result`

    request-specific result value; basically, the value returned by corresponding system call.

  `req`

    is optional request resource which can be used with functions like eio_get_last_error().

`data`

  Arbitrary variable passed to `callback`.

### Return Values

### Examples

Example #1 eio_link() example

    <?php
    $filename = dirname(__FILE__)."/symlink.dat";
    touch($filename);
    $link = dirname(__FILE__)."/symlink.link";
    $hardlink = dirname(__FILE__)."/hardlink.link";

    function my_hardlink_cb($data, $result) {
        global $link, $filename;
        var_dump(file_exists($data) && !is_link($data));
        @unlink($data);

        eio_symlink($filename, $link, EIO_PRI_DEFAULT, "my_symlink_cb", $link);
    }

    function my_symlink_cb($data, $result) {
        global $link, $filename;
        var_dump(file_exists($data) && is_link($data));

        if (!eio_readlink($data, EIO_PRI_DEFAULT, "my_readlink_cb", NULL)) {
            @unlink($link);
            @unlink($filename);
        }
    }

    function my_readlink_cb($data, $result) {
        global $filename, $link;
        var_dump($result);

        @unlink($link);
        @unlink($filename);
    }

    eio_link($filename, $hardlink, EIO_PRI_DEFAULT, "my_hardlink_cb", $hardlink);
    eio_event_loop();
    ?>

The above example will output something similar to:

    bool(true)
    bool(true)
    string(%d) "%ssymlink.dat"

### See Also

- eio_symlink() - Create a symbolic link