Wenn ich mir vorstelle das Offcie es genau wie TextEdit macht, dann ist es kein Wunder. dann wird bei jedem autosave eine neue Datei angelegt.
Wenn ich mich an den Thread richtig erinnere, war das Verhalten nicht gleich. TextEdit löste den Hardlink auf, Office hat ihn korumpiert.
filehandler(datei1) ist offen -> autosave erfolgt -> filehandler(datei2) ist offen.
Wenn jetzt der crash vor dem nächsten save erfolgt dürfte die Datei weg sein.
Das ist nur eine Vermutung, zumindest wäre das aber eine Möglichkeit.
Ein Filehandler ist eigentlich nur ein verweis auf den INODE. Das Kopieren der Datei beim Bearbeiten soll ja eigentlich vor Datenverlust schützen.
1) Datei öffnen (fd0)
2) Neue Datei erzeugen,die alte existiert noch open(fd1)
3) filecopy(fd0,fd1)
4) fd0 sollte danach geschlossen werden. fd1 ist vorerst eine temporäre Datei
5) Alle weiteren Operationen erfolgen auf fd1, das sichere Original liegt noch in der Originaldatei
6) fd1 autosafe geschieht auf der temp. Datei
7) Zum Sichern durch den Benutzer wird ein neuer fd2 erzeugt, der auf den Namen der Originaldatei verweist. Hier scheint ein es Implementierungsfehler zu geben. TextEdit löscht das alte original, da es vorhanden ist und erzeugt danach eine neue Datei. Das Ergebnis ist zwar "sauber", jedoch bricht es die Hardlinks. Richtig wäre es, das alte Original als bestehende Datei zu öffnen und dann mit filecopy den Inhalt dort hinüber zu kopieren. Office wird wohl noch was ganz anderes machen, wer weiss was. Was liefert eigentlich das OpenFile-Widget von Cocoa zurück? Naja,das ist offtopic..
Gruss Carsten