ダイレクト 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 — オプションで丸め長さを指定してデータを書き込む