On Feb 6, 2005, at 8:09 PM, Chris Thomas wrote:
On Feb 6, 2005, at 2:42 PM, Ryan Schmidt wrote:
On 01.02.2005, at 11:57, Sune Foldager wrote:
On 1. feb 2005, at 5:26, Paul Kline wrote:
What is atomic saving?
Atomic saving makes sure that the old version of the file on disk is replaced with the new one in on, atomic, operation. This is sometimes needed when the files you are writing might at the same time be read by other running programs. Technically it's writing the file with another name, then renaming the new file into the old file (destroying the old file in the process). The disadvantage of atomic saves (for some), is that the file gets a new inode-number each time which will break hard-links and might upset aliases if they are not pointing correctly.
Apple has been promoting this practice for ten years or more, and aliases have always worked with it in the past. As I understand it, part of the reason for Apple providing a function to do this is specifically so that aliases continue to function. The documentation [1] says that the "file ID" is preserved, though I don't know if that's the same thing as an "inode number."
Yup, the "atomic save" checkbox could go away, or at least default to "on."
[1] http://developer.apple.com/documentation/Carbon/Reference/ File_Manager/file_manager/function_group_21.html
man exchangedata provides better background information. exchangedata is the core VFS implementation of FSExchangeObject; it may be easier to call from Cocoa.
Eh, it occurs to me that man page may not be installed on Panther. Go here instead:
http://developer.apple.com/qa/qa2001/qa1327.html
Chris