PHP - Direct I/O 函数


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 并选择性地截断长度。