diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2016-09-10 19:12:21 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2016-09-10 19:14:44 -0700 |
commit | 31407634f77c9e40bb3c3ca87013672528cffa57 (patch) | |
tree | 8d153a965452539a8465d9403e333cbe36a97433 /doc/lispref/files.texi | |
parent | 9b21d9f9110445846dce25c3505c4ee04572fade (diff) | |
download | emacs-31407634f77c9e40bb3c3ca87013672528cffa57.tar.gz |
Document file synchronization issues
* doc/lispref/files.texi (Files and Storage): New section.
Diffstat (limited to 'doc/lispref/files.texi')
-rw-r--r-- | doc/lispref/files.texi | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi index 0aea1dfd9a3..b912d7bc8f5 100644 --- a/doc/lispref/files.texi +++ b/doc/lispref/files.texi @@ -41,6 +41,7 @@ to locale @code{system-messages-locale}, and decoded using coding system simultaneous editing by two people. * Information about Files:: Testing existence, accessibility, size of files. * Changing Files:: Renaming files, changing permissions, etc. +* Files and Storage:: Surviving power and media failures * File Names:: Decomposing and expanding file names. * Contents of Directories:: Getting a list of the files in a directory. * Create/Delete Dirs:: Creating and Deleting Directories. @@ -1496,6 +1497,10 @@ error if they fail to perform their function, reporting the system-dependent error message that describes the reason for the failure. + For performance, the operating system may cache or alias changes +made by these functions instead of writing them immediately to +secondary storage. @xref{Files and Storage}. + In the functions that have an argument @var{newname}, if a file by the name of @var{newname} already exists, the actions taken depend on the value of the argument @var{ok-if-already-exists}: @@ -1794,6 +1799,26 @@ The function returns @code{t} if it successfully sets the ACL of @var{filename}, @code{nil} otherwise. @end defun +@node Files and Storage +@section Files and Secondary Storage +@cindex secondary storage + +After Emacs changes a file, there are two reasons the changes might +not survive later failures of power or media, both having to do with +efficiency. First, the operating system might alias written data with +data already stored elsewhere on secondary storage until one file or +the other is later modified; this will lose both files if the only +copy on secondary storage is lost due to media failure. Second, the +operating system might not write data to secondary storage +immediately, which will lose the data if power is lost. + +Although both sorts of failures can largely be avoided by a suitably +configured file system, such systems are typically more expensive or +less efficient. In more-typical systems, to survive media failure you +can copy the file to a different device, and to survive a power +failure you can invoke the @command{sync} utility (@pxref{sync +invocation,,, coreutils, The @sc{gnu} @code{Coreutils} Manual}). + @node File Names @section File Names @cindex file names |