GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Files-and-Storage.html ・ emacs-doc.conao3.com

26.8 ファイルと補助記憶装置

Emacsがファイルを変更した後、その後の停電やメディア障害で変更内容が保持されない可能性がある理由は2つあり、いずれも効率性に起因しています。第一に、オペレーティングシステムが、いずれかのファイルが後で変更されるまで、書き込まれたデータをセカンダリストレージの別の場所に既に保存されているデータとエイリアス化する場合があります。この場合、メディア障害によってセカンダリストレージ上の唯一のコピーが失われると、両方のファイルが失われます。第二に、オペレーティングシステムがデータをすぐにセカンダリストレージに書き込まない場合があり、停電やメディア障害が発生するとデータが失われます。

いずれの種類の障害も、適切に構成されたシステムであれば概ね回避可能ですが、そうしたシステムは通常、より高価であるか、あるいは効率が劣ります。低スペックのシステムでは、メディア障害から復旧するためにファイルを別のデバイスにコピーでき、電源障害から復旧する(あるいはメディア障害を即座に通知される)には、write-region-inhibit-fsync 変数を nil に設定した write-region 関数を使用できます。この変数は通常、パフォーマンスを大幅に向上させることができるため t に設定されていますが、低スペックのシステムで電源障害に耐えうるデータベースのようなトランザクションを Emacs で実装する場合は、一時的に nil にバインドすることが有効な場合があります。ファイルへの書き込み を参照してください。

一部のプラットフォームでは、Emacsがファイルを変更した際、他のプロセスにその変更が即座に通知されないことがあります。この場合、write-region-inhibit-fsync を nil に設定することで通知速度が向上する可能性がありますが、保証されるものではありません。