0

Mac OS XでACLがサポートされているため、ファイルを書き込み可能であるが削除不可として宣言する方法があります。

VFSの現在の実装は既存のターゲットであるため、これはアトミック書き込みで問題を引き起こします。書き込み権限を持つ既存のファイルがある場合、アトミックに書き込むことができない可能性があります。 状態を示すACLをアタッチするだけで、アトミック書き込み(さまざまなCocoa APIによって実装されるような-NSArrayなど)は失敗しますが、非アトミック書き込みは問題なく成功します。renamedelete
deny deletewriteToFile:atomically:

低レベルのCコードについての私の理解はかなり限られているので
、代替の実装は、マイナーな(「マイナー」のお気に入りの定義を挿入する)頭痛だけで実行可能ですか?

ありがとう

ダニエル

4

1 に答える 1

1

exchangedata実行可能な代替手段は、一時ディレクトリにファイルを作成してから、両方のファイルを呼び出すように見えます。HFSはVOL_CAP_INT_EXCHANGEDATA属性をエクスポートするので、機能するはずです。vfs_syscalls.cの関連するチェックは、呼び出しが成功するために必要なのは読み取りおよび書き込み権限のみであることを示しています。

于 2011-03-22T18:10:15.043 に答える