Create a special or ordinary file

eio_mknod

(PECL eio >= 0.0.1dev)

eio_mknodCreate a special or ordinary file

說明

eio_mknod(
    string $path,
    int $mode,
    int $dev,
    int $pri = EIO_PRI_DEFAULT,
    callable $callback = NULL,
    mixed $data = NULL
): resource

eio_mknod() creates ordinary or special(often) file.

警告

本函式還未編寫文件,僅有參數列表。

參數

path

Path for the new node(file).

mode

Specifies both the permissions to use and the type of node to be created. It should be a combination (using bitwise OR) of one of the file types listed below and the permissions for the new node(e.g. 0640). Possible file types are: EIO_S_IFREG(regular file), EIO_S_IFCHR(character file), EIO_S_IFBLK(block special file), EIO_S_IFIFO(FIFO - named pipe) and EIO_S_IFSOCK(UNIX domain socket). To specify permissions EIO_S_I* constants could be used.

dev

If the file type is EIO_S_IFCHR or EIO_S_IFBLK then dev specifies the major and minor numbers of the newly created device special file. Otherwise dev ignored. See mknod(2) man page for details.

pri

請求的優先順序:EIO_PRI_DEFAULTEIO_PRI_MINEIO_PRI_MAXnull。如果是 nullpri 將設為 EIO_PRI_DEFAULT

callback

callback 函式在請求完成時被呼叫。其應匹配一下原型:

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

傳遞給請求的用戶數據。

result

針對請求的結果的值。通常是相應的系統呼叫返回的值。

req

可選的請求資源,可被 eio_get_last_error() 之類的函式使用。

data

Arbitrary variable passed to callback.

返回值

eio_mknod() returns request resource on success, 或者在失敗時返回 false.

範例

示例 #1 eio_mknod() example

<?php
// FIFO name
$temp_filename "/tmp/eio-temp-fifo";

/* Is called when eio_mknod() finishes */
function my_mknod_callback($data$result) {
    
$s stat($data);
    
var_dump($s);

    if (
$result == 0) {
        echo 
"eio_mknod_ok";
    }

    @
unlink($data);
}

eio_mknod($temp_filenameEIO_S_IFIFO0,
    
EIO_PRI_DEFAULT"my_mknod_callback"$temp_filename);
eio_event_loop();
?>

以上例程的輸出類似於:

array(26) {
  [0]=>
  int(17)
  [1]=>
  int(2337608)
  [2]=>
  int(4096)
  [3]=>
  int(1)
  [4]=>
  int(1000)
  [5]=>
  int(100)
  [6]=>
  int(0)
  [7]=>
  int(0)
  [8]=>
  int(1318241261)
  [9]=>
  int(1318241261)
  [10]=>
  int(1318241261)
  [11]=>
  int(4096)
  [12]=>
  int(0)
  ["dev"]=>
  int(17)
  ["ino"]=>
  int(2337608)
  ["mode"]=>
  int(4096)
  ["nlink"]=>
  int(1)
  ["uid"]=>
  int(1000)
  ["gid"]=>
  int(100)
  ["rdev"]=>
  int(0)
  ["size"]=>
  int(0)
  ["atime"]=>
  int(1318241261)
  ["mtime"]=>
  int(1318241261)
  ["ctime"]=>
  int(1318241261)
  ["blksize"]=>
  int(4096)
  ["blocks"]=>
  int(0)
}
eio_mknod_ok

參見

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *