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