Spec-Zone.ru › Elisp

Файлы и вторичное хранилище

После изменения файла в Emacs есть две причины, по которым изменения могут не сохраниться при последующих сбоях питания или носителя; обе связаны с эффективностью. Во-первых, операционная система может связывать записываемые данные с данными, уже сохранёнными в другом месте на вторичном хранилище, пока позднее не будет изменён один из файлов; в этом случае оба файла будут потеряны, если единственная копия на вторичном хранилище будет утрачена из-за сбоя носителя. Во-вторых, операционная система может не записывать данные на вторичное хранилище немедленно, и в этом случае данные будут потеряны при отключении питания или сбое носителя.

Хотя обоих типов сбоев в значительной степени можно избежать при соответствующей настройке системы, такие системы обычно обходятся дороже или работают менее эффективно. В системах начального уровня, чтобы защититься от сбоя носителя, можно скопировать файл на другое устройство, а чтобы защититься от сбоя питания (или немедленно получить уведомление о сбое носителя), можно использовать функцию write-region, установив переменную write-region-inhibit-fsync в значение nil. Хотя обычно эта переменная имеет значение t, поскольку это может значительно повысить производительность, при использовании Emacs для реализации транзакций, подобных транзакциям в базах данных, которые должны сохраняться при сбое питания в системах начального уровня, может иметь смысл временно связать её со значением nil. См. Запись в файлы.

На некоторых платформах при изменении файла в Emacs другие процессы могут не сразу получить уведомление об изменении. В этом случае установка write-region-inhibit-fsync в значение nil может ускорить уведомление, однако гарантий нет.

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Files-and-Storage.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API