2011-01-11 3 views
0

Mac OS XのACLをサポートするため、ファイルを書き込み可能だが削除できないと宣言する方法があります。Mac VFS/HFS +ではアトミックリネームが可能ですか?

これは、VFS deleterenamecurrent implementationが既存のターゲットであるため、アトミック書き込みに問題があります。書き込み権限がある既存のファイルがある場合はにはをアトミックに書き込むことはできません。
deny deleteとアトミック書き込み(例:NSArray's writeToFile:atomically: )は失敗し、非アトミックな書き込みはうまくいくでしょう。

低レベルのCコードの理解はかなり制限されていますので、
代替案は、マイナー(「マイナー」という好みの定義を挿入してください)の頭痛で実現可能ですか?

おかげ

ダニエル

答えて

1

実行可能な代替案は、その後、一時ディレクトリにファイルを作成両方のファイルにexchangedataを呼び出すように思われます。 HFSはVOL_CAP_INT_EXCHANGEDATAアトリビュートをエクスポートします。 vfs_syscalls.cの関連チェックでは、呼び出しが成功するために読み取りと書き込みのアクセス許可のみが必要であることが示されています。

+0

ニース!私は 'exchangedata'について知らなかった... – danyowdee

関連する問題