PHP マニュアル
前のページ |  | 次のページ

# php_stream_seek

php_stream_seek -- ストリーム内で移動する

## 説明

int php_stream_seek ( php_stream * stream, off_t offset, int whence )

php_stream_seek() は stream の内部位置を移動します。 新しい位置は、offset の値を、 whence で示された位置に加算することで決定されます。 whence が `SEEK_SET` にセット されていた場合は、ストリームの開始位置を、`SEEK_CUR` の場合は、ストリームの現在位置を、`SEEK_END` の場合は、 ストリームの終端位置を、それぞれ計算の基準とします。

php_stream_seek() は成功時に 0 を、失敗時に -1 を 返します。

> 注意: すべての種類のストリームがシーク動作をサポートしているわけでは ありませんが、ストリーム API は、whence `SEEK_CUR` に設定されていて、かつ offset が正の値の場合、 php_stream_read() で offset バイト分だけ読み込んで、読み込まれた内容を破棄することで、シークを エミュレートしようとします。

> エミュレーションは、下層にあるストリームの実装が、シークをサポート していないときのみに行われます。つまり、仮に開かれているストリームが ファイルベースのストリームで、それがシークできないパイプを ラップしていたとしても、ストリーム API はエミュレーションを行いません。 ファイルベースのストリームはシーク動作を実装しているからです。 このとき、シークは失敗し、エラーが呼び出し元に返されます。

前のページ | ホーム | 次のページ
php_stream_flush | 上に戻る | php_stream_tell