通常、アプリケーションは、古いファイルの名前を変更して新しいファイルを所定の場所に書き込むか、一時ファイルを書き込んで古いファイルを新しい一時ファイルに置き換えることにより、アトミック保存を実行します。emacsはこれらのどれをしますか?パッチディスカッションへのこのリンクを見つけましたが、何が起こっているのかわかりません。
通常、アプリケーションは、古いファイルの名前を変更して新しいファイルを所定の場所に書き込むか、一時ファイルを書き込んで古いファイルを新しい一時ファイルに置き換えることにより、アトミック保存を実行します。emacsはこれらのどれをしますか?パッチディスカッションへのこのリンクを見つけましたが、何が起こっているのかわかりません。
回答:
答えは、あらゆる種類の要因に依存するということです。
まず、「古いファイルの名前を変更して新しいファイルを所定の場所に書き込む」ことはアトミックではないことに注意してください。
Emacsはさまざまな方法で保存できます。
「リンク切れ」は、新しいファイルが異なる許可/所有者/ ...を持っていることを意味することに注意してください
ほとんどの場合、Emacsは2番目のアプローチを使用します(リンクと許可を保持するため)。ただし、ファイルのバックアップを作成する必要がある場合(に従ってmake-backup-files
)、多くの場合、最初のアプローチ(名前の変更を使用してバックアップを作成する)を使用しますが、これはbackup-by-copying
(およびbackup-by-copying-when-
)などfile-precious-flag
とbreak-hardlink-on-save
。