Web aym.pekori.to

XXVIII. ダイレクト IO (DIO) 関数

導入

PHP は、POSIX 標準(第 6 章)に記述されたダイレクト IO 関数を サポートします。これらは、C 言語のストリーム I/O 関数 (fopen(), fread(),..)よりも 低レベルの I/O 関数の実装です。 DIO 関数の使用は、あるデバイスを直接制御することが必要な場合のみ 考えるべきです。その他の場合は、標準の ファイルシステム関数の方が 適当です。

注意: この拡張モジュールは PECL レポジトリに移動 されており、以下のバージョン以降 PHP にバンドルされなくなっています。 PHP 5.1.0.

この拡張モジュールは、Windows プラットフォーム上では PHP 5.0.0 以降でのみ使用可能です。

要件

外部ライブラリを必要としません。

インストール手順

これらの関数を動作させるには、 --enable-dio を指定して PHP の configure を実行する必要があります。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

c (integer)

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)

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)

実行時設定

設定ディレクティブは定義されていません。

リソース型

この拡張モジュールでは、1 種類のリソース型、すなわち dio_open() により返されるファイル記述子 が定義されています。

目次
dio_close -- fd で指定したファイル記述子を閉じる
dio_fcntl -- fd について C ライブラリの fcntl を実行する
dio_open --  指定したパーミッション flags と作成許可 mode を指定して 新しいファイルをオープンする
dio_read -- ファイル記述子からバイトデータを読み込む
dio_seek -- fd 上で whence から pos に移動する
dio_stat --  ファイル記述子 fd に関する stat 情報を取得する
dio_tcsetattr --  シリアルポートの端末属性とボーレートを設定する
dio_truncate --  ファイル記述子 fd をオフセットバイトへ丸める
dio_write --  オプションで丸め長さを指定してデータを書き込む