• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルを開いたままオープンモードを変更したい)

ファイルを開いたままオープンモードを変更する方法

このQ&Aのポイント
  • ファイルを開いたままオープンモードを変更する方法を教えてください。
  • ファイルを開いたままロックを解除せずに空にして書き込みモードに移行する方法を教えてください。
  • ファイルを開いたままロックをしたまま余計な部分を捨てる方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

$fp = fopen($file, 'r+'); flock($fp, LOCK_EX); // ここで何か読む ftruncate($fp,0); // ここで何か書く flock($fp, LOCK_UN); fclose($fp); 通常はこれで問題無いのではないでしょうか。 共有ロック中に排他ロックに切り替えるという処理が出来るとすると、 それを行うプロセスが複数ある場合にちょっと問題が起こるように思うのですが、 linuxなんかのfcntlでは一応出来るようです。(試してません) ですのでphpのdio_fcntlでも出来るかもしれません。(試してません)

izayoimizuki
質問者

お礼

ありがとうございます。 目的通りの挙動がしました。

関連するQ&A