Go to the first, previous, next, last section, table of contents.


File Locks

When two users edit the same file at the same time, they are likely to interfere with each other. Emacs tries to prevent this situation from arising by recording a file lock when a file is being modified. Emacs can then detect the first attempt to modify a buffer visiting a file that is locked by another Emacs job, and ask the user what to do.

File locks are not completely reliable when multiple machines can share file systems. When file locks do not work, it is possible for two users to make changes simultaneously, but Emacs can still warn the user who saves second. Also, the detection of modification of a buffer visiting a file changed on disk catches some cases of simultaneous editing; see section Comparison of Modification Time.

Function: file-locked-p filename
This function returns nil if the file filename is not locked. It returns t if it is locked by this Emacs process, and it returns the name of the user who has locked it if it is locked by some other job.

(file-locked-p "foo")
     => nil

Function: lock-buffer &optional filename
This function locks the file filename, if the current buffer is modified. The argument filename defaults to the current buffer's visited file. Nothing is done if the current buffer is not visiting a file, or is not modified.

Function: unlock-buffer
This function unlocks the file being visited in the current buffer, if the buffer is modified. If the buffer is not modified, then the file should not be locked, so this function does nothing. It also does nothing if the current buffer is not visiting a file.

Function: ask-user-about-lock file other-user
This function is called when the user tries to modify file, but it is locked by another user named other-user. The default definition of this function asks the user to say what to do. The value this function returns determines what Emacs does next:

If you wish, you can replace the ask-user-about-lock function with your own version that makes the decision in another way. The code for its usual definition is in `userlock.el'.


Go to the first, previous, next, last section, table of contents.