0

Zend Framework のログ モジュールである Zend_Log を少し調べましたが、同じファイルに複数の php スクリプトが書き込まれている場合に競合状態を防ぐために flock 関数を使用していることはわかりませんでした。私が知っているように、zend フレームワークに基づく Web アプリケーションは、各リクエストを個別の php プロセスとして扱うため、これらのプロセス間で状態を共有できないため、ファイル書き込みアクションを同期させる必要があります。

その理由を知っている人はいますか?

4

1 に答える 1

0

いくつかのドキュメントを確認した後、私自身の質問に答えさせてください.UNIXのようなシステムでは、O_APPENDで開かれたファイルはスレッドであり、ファイルへの書き込みは安全です。しかし、Windows は例外です。おそらく、php は Windows インタープリター用のラッパーを作成しました。

開いているファイルが PIPE または FIFO の場合、純粋なファイルとは異なります。size バイトが PIPE_BUF のサイズを超える場合、それはアトミックではありません。

複数のプロセスからの同時ファイル書き込みについて

O_APPEND ドキュメント

于 2017-01-06T04:20:24.167 に答える