26.8 文件与辅助存储

Emacs 修改文件后,修改内容可能无法在后续断电或存储介质故障中保留, 原因有二,均与效率相关。其一,操作系统可能将写入的数据与 已存储在辅助存储其他位置的数据做别名映射,直到其中一个文件被后续修改; 若辅助存储上的唯一副本因介质故障丢失,两个文件都会损坏。 其二,操作系统可能不会立即将数据写入辅助存储, 若此时断电或发生介质故障,数据将会丢失。

尽管通过适当配置的系统可以在很大程度上避免这两类故障, 但这类系统通常成本更高或效率更低。在低端系统中, 要在介质故障后保留数据,可将文件复制到不同设备; 要在断电后保留数据(或立即获知介质故障), 可使用 write-region 函数,并将变量 write-region-inhibit-fsync 设置为 nil。 该变量通常为 t,因为这能显著提升性能; 但如果在低端系统上使用 Emacs 实现可抵御断电的类数据库事务, 将其临时绑定为 nil 会更合理。 See 写入文件

在部分平台上,Emacs 修改文件后,其他进程可能不会立即收到变更通知。 将 write-region-inhibit-fsync 设为 nil 可能会加快此类通知,但不提供保证。

emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike