php_stream_open_wrapper

php_stream_open_wrapper -- ファイルまたはURLをオープンする

説明

php_stream * php_stream_open_wrapper ( char * path, char * mode, int options, char ** opened )

php_stream_open_wrapper()path で指定されたファイルやURLなどのラップされたリソースのストリームを開きます。 mode によって、ストリームを読み出し用、書き出し用、 追記用、あるいはその組み合わせで開くことができます。指定できる種々のモード については下記の表をご覧ください。それらの文字列に加え、文字 'b' を モード文字列の2文字目、または末尾に含めることができます。 この文字 'b' は、該当するストリームの実装に対し、バイナリセーフなモードで ストリームを開くよう指示します。

文字 'b' は、すべての POSIX に準拠したシステム上では、バイナリファイルと テキストファイルが同列に扱われるため、無視されます。アクセスするデータ において、8 ビットすべてが重要な際には、この 'b' 文字を指定しておくのは、 'b' フラグが意味を持つシステムでも同じスクリプトを動かせるので、 よいアイディアといえます。

ストリーム API によって作成されたすべてのローカルにあるファイルの パーミッションは、オペレーティングシステムのデフォルトに従って 設定されます - Unix ベースのシステムでは、ファイルを作成したプロセスの umask が反映されます。また、Windows では、ファイルを作成したプロセスが ファイルを所有します。 リモートにあるファイルについては、ファイルを開くのに用いた URL ラッパー の設定や、リモートのサーバに与えられた信頼情報に応じて作成されます。

r

ファイルを読み出し用に開きます。このとき、ストリームの位置は、 ファイルの先頭に移動されます。

r+

ファイルを読み書き用に開きます。このとき、ストリームの位置は、 ファイルの先頭に移動されます。

w

ファイルの内容を長さ 0 に切り詰めるか、新規にファイルを作成し、 書き出しモードで開きます。このとき、ストリームの位置は、 ファイルの先頭に移動されます。

w+

ファイルを読み書き用に開きます。もし指定されたファイルが存在 しない場合は、新規に作成し、存在する場合は、長さを切り詰めます。 このとき、ストリームの位置は、ファイルの先頭に移動されます。

a

ファイルを書き出し用に開きます。もしファイルが存在しない場合は、 新規に作成します。このとき、ストリームの位置は、ファイルの 末尾に移動されます。

a+

ファイルを読み書き用に開きます。もし指定されたファイルが存在 しない場合は、新規に作成します。このとき、ストリームの位置は、 ファイルの末尾に移動されます。

options は、ストリームへのパスや URL をどのように 解釈するかや、セーフモードチェック、ストリームを開くときにエラーが 発生した場合のアクションに影響します。このオプションに関しては、 Stream open options を参照ください。

もし opened が NULL でなければ、実際に 開かれたファイルやリソースの名前がセットされます。これは、 オプションに include_path に列挙されたパスからファイルを探すよう指示する USE_PATH が含まれている時に重要になります。 呼び出し元は、最後にこのパラメータによって返されたファイル名を efree() の呼び出しによって開放する必要があります。

注意: もし、STREAM_MUST_SEEKoptions に指定した場合、opened に返されたファイルへのパス は、実際に返されるストリームのものと違う場合があります。しかし、これは シーク可能なストリームを作るのに用いられた元のストリームの名前になります。