(PECL eio >= 0.0.1dev)
eio_mknod — 创建特殊或普通文件
$path
,$mode
,$dev
,$pri
= EIO_PRI_DEFAULT,$callback
= NULL,$data
= NULLeio_mknod() 创建普通或特殊(通常)文件。
此函数目前没有文档;只有它的参数列表可用。
path
新节点(文件)的路径。
mode
指定要使用的权限和要创建的节点类型。它应该是以下列出的文件类型之一与新节点的权限(例如 0640)的组合(使用按位或)。可能的文件类型是:EIO_S_IFREG
(普通文件)、EIO_S_IFCHR
(字符文件)、EIO_S_IFBLK
(块特殊文件)、EIO_S_IFIFO
(FIFO - 命名管道)和 EIO_S_IFSOCK
(UNIX 域套接字)。要指定权限,可以使用 EIO_S_I* 常量。
dev
如果文件类型是 EIO_S_IFCHR
或 EIO_S_IFBLK
,则 dev 指定新创建的设备特殊文件的 major 和 minor 编号。否则 dev
被忽略。有关详细信息,请参阅 mknod(2) 手册页。
pri
请求优先级:EIO_PRI_DEFAULT
、EIO_PRI_MIN
、EIO_PRI_MAX
或 null
。如果传递了 null
,则 pri
在内部被设置为 EIO_PRI_DEFAULT
。
callback
callback
函数在请求完成时被调用。它应该匹配以下原型
void callback(mixed $data, int $result[, resource $req]);
data
是传递给请求的自定义数据。
result
请求特定的结果值;基本上,由相应的系统调用返回的值。
req
是可选的请求资源,可以与 eio_get_last_error() 等函数一起使用
data
传递给 callback
的任意变量。
eio_mknod() 在成功时返回请求资源,在失败时返回 false
。
示例 #1 eio_mknod() 示例
<?php
// FIFO 名称
$temp_filename = "/tmp/eio-temp-fifo";
/* 当 eio_mknod() 完成时被调用 */
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