私は PHP でファイル ポインターを見つけようとしていたので、それをテストするための小さなスクリプトを作成しました。
$fp = fopen('test.me', 'w+');
fwrite($fp, '12345');
rewind($fp);
echo 'contents: ['.stream_get_contents($fp)."]\n";
fseek($fp, 0, SEEK_END);
fwrite($fp, '6789');
fclose($fp);
echo 'contents: ['.file_get_contents('test.me')."]\n";
素敵で簡単。ファイルを開き、読み書きします。それに書き込みます。ファイルの先頭に戻り、その内容を出力します。ファイルの最後に移動し、さらに追加します。最後に、ファイルの内容全体を印刷します。
それを実行すると、期待どおりの結果が得られます。
contents: [12345]
contents: [123456789]
この傑作を書いたことを誇りに思っているので、私は自分の端末に行き、起動してもう一度実行します。
今回:
contents: []
contents: [123456789]
スクリプトの開始時にファイルが存在する場合、最初のブロックは常にcontents:[]
. test.me
ファイルを削除すると、最初のブロックはcontents:[12345]
.
何が起きてる?