(PECL eio >= 0.0.1dev)
eio_mknod — Create a special or ordinary file.
$path
, int $mode
, int $dev
[, int $pri = EIO_PRI_DEFAULT
[, callable $callback = NULL
[, mixed $data = NULL
]]] )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_DEFAULT、EIO_PRI_MIN、EIO_PRI_MAX あるいは NULL を指定します。
NULL を渡した場合、pri は内部的に
EIO_PRI_DEFAULT となります。
callback
callback 関数が、リクエスト終了時にコールされます。
この関数のプロトタイプは、
void callback($data, $result);
$data
は、リクエストに渡すカスタムデータです。
$result
にはリクエスト固有の結果が格納されます。基本的には、対応するシステムコールが返すそのままの値となります。
data
Arbitrary variable passed to callback.
eio_mknod() returns request resource on success or FALSE on error.
例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_filename, EIO_S_IFIFO, 0,
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