2011-01-20 16 views
2

可能性の重複:
PHP Simultaneous File Writesphp 2人で同時に追加するとどうなりますか?

こんにちは、

私は、PHPスクリプトとテキストファイルを持っているし、2人のユーザーは、テキストファイルに長いテキスト文字列を追加した場合同じ時間に、何が起こるでしょうか?それはまだ通りますか?それはバッファリングされるので、両方とも追加されるか、落とされますか?

+0

** PHP Simultaneous File Writes **の可能な複製。その答えは、この質問をもカバーする必要があります:http://stackoverflow.com/questions/1209688/php-simultaneous-file-writes –

答えて

-1

通常、OSは書き込み中にファイルをロックするので、他のプロセスはこの書き込みプロセスが完了するのを待ってから書き込みを開始する必要があります。

したがって、あるクライアントでは遅延が発生し、fopen()ではPHPの警告/エラーが発生します。コードがどのように機能し、どの機能を使用しているかによって異なります。

0

cモードパラメータを使用してfopenを使用すると、ファイルがfcloseになるまで強制的にロックされます。これにより、複数の人が同時にファイルに書き込むことができなくなります。通常、ファイルシステムはデフォルトで(OSの設定によっては)これを行いますが、modeパラメータを使用するとベースがカバーされます。

PHP: fopen

0

仕様は、プラットフォームと、データが書き込まれているの大き​​さに依存するが、両方のプロセスがファイルの同じ位置に書き込みを開始した場合、最後の一つは、多くの場合、いわば勝ち。しかし、特に大量のデータを一度に書き込む場合、データがインターリーブされることになります。

flock()をご覧ください。オペレーティングシステムは完全に「あなたのために」行うわけではありません。

関連する問題