PHP 可以支持 Direct I/O 函数,如 Posix 标准中所述,用于在比 C 语言流 I/O 函数(fopen()、read()、..)更低的级别执行 I/O 函数。只有在需要直接控制设备时,才能考虑使用 DIO 功能。在所有其他情况下,标准文件系统功能已经绰绰有余。
注意:此扩展只能在 PHP 5.0.0 及以上的 Windows 平台上使用。
安装
在使用 PHP 的 Direct I/O 函数之前,请确保您的 PHP 安装已更新。这些函数通常包含在标准 PHP 安装中,但您可以通过检查您的版本来验证。
要求
确保您拥有 PHP 5.0.0 或更高版本。它与基于 Unix 的系统和 Windows 兼容。
运行时配置
Direct I/O 函数不需要特殊的 php.ini 设置。这些函数应该与标准 PHP 配置一起工作。但是,如果您正在处理大文件,则可能需要调整一些默认设置,例如内存限制或执行时间。
资源类型
此扩展定义单个资源类型,即 dio_open() 返回的文件描述符。
预定义常量
常量由此扩展在下面定义,并且仅当扩展已编译为 PHP 或在运行时动态加载时可用。
- F_DUPFD (integer)
- F_GETFD (integer)
- F_GETFL (integer)
- F_GETLK (integer)
- F_GETOWN (integer)
- F_RDLCK (integer)
- F_SETFL (integer)
- F_SETLK (integer)
- F_SETLKW (integer)
- F_SETOWN (integer)
- F_UNLCK (integer) (integer)
- F_WRLCK (integer)
- O_APPEND (integer)
- O_ASYNC (integer)
- O_CREAT (integer)
- O_EXCL (integer)
- O_NDELAY (integer)
- O_NOCTTY (integer)
- O_NONBLOCK (integer)
- O_RDONLY (integer)
- O_RDWR (integer)
- O_SYNC (integer)
- O_TRUNC (integer)
- O_WRONLY (integer)
- S_IRGRP (integer)
- S_IROTH (integer)
- S_IRUSR (integer)
- S_IRWXG (integer)
- S_IRWXO (integer)
- S_IRWXU (integer)
- S_IWGRP (integer)
- S_IWOTH (integer)
- S_IWUSR (integer)
- S_IXGRP (integer)
- S_IXOTH (integer)
- S_IXUSR (integer)
函数
以下是 Direct I/O 函数 -
函数 | 描述 |
---|---|
dio_close() | 关闭 fd 给出的文件描述符。 |
dio_fcntl() | 在 fd 上执行 c 库的函数 fcntl。 |
dio_open() | 在 C 库 I/O 流函数允许的更低级别打开(必要时创建)文件 |
dio_read() | 从文件描述符中读取字节。 |
dio_seek() | 在 fd 指定 pos 位置 |
dio_stat() | 返回有关文件描述符 fd 的统计信息。 |
dio_tcsetattr() | 设置串口的终端属性和波特率。 |
dio_truncate() | 按偏移字节截断具有 fd 描述符的文件。 |
dio_write() | 将数据写入 fd 并选择性地截断长度。 |