fread関数がファイル内でファイル ポインターを移動する方法を知りたかったのです。
次のシナリオを考えてみましょう。
<?php
$file=fopen(binary.txt,rb);
fread($file,0x594);
function(fread($file,0x1a8), ....); // some function w/ first argument as fread O/P
?>
コードの簡単な概要:
読み取り専用モードでバイナリ ファイルを開きます。私の理解が正しいかどうか知りたかった:
- fread 関数を最初に呼び出すと、ファイル ポインターが0x594の位置に移動します。
バイナリ ファイルの最初のバイトの位置は 0 と見なされ、fread 関数は 0x594 バイトを読み取るので、ファイル ポインタの新しい位置は何になりますか?
0x593 または 0x594?
- 2 番目の fread 関数は、前のファイル ポインター位置から読み取りを開始します。では、fread 関数の呼び出しがあるたびに、ファイル ポインタの位置は保持されるのでしょうか。
つまり、一連の fread 関数呼び出しで、各 fread 関数は、前の fread 関数によって設定されたファイル ポインターの位置からバイトの読み取りを開始します。
この場合、位置 0x594 から (0x594+0x1a8) または 0x73c までのバイトの読み取りを開始します。
ありがとう。