gpt4 book ai didi

macos - 如何在 OS X 64 位应用程序中读取和写入资源分支

转载 作者:行者123 更新时间:2023-12-01 03:01:38 24 4
gpt4 key购买 nike

编写归档实用程序时,我需要能够在 Mac OS X 文件系统上读取和写入资源分支。

曾经存在 FSOpenFork 和相关函数,但是当前的在线文档和 Xcode (v7.1) 附带的文档甚至不再提及这些函数。

此外,GetEOF 等功能对于 64 位应用程序甚至不再可用。

目前有哪些 API 可用于读取和写入资源分支?如果可以,请提供打开、读取、写入、关闭和查询/设置EOF和当前r/w偏移量的函数声明。

注意:虽然我已经添加了我自己的答案,列出了替换 FS... 函数,但如果其他人可以添加更多方法,例如使用 CFURL API 或命名的 fork 方法(使用特殊文件名),那就太好了,但我一直忘记它是如何工作的)。

最佳答案

您可以通过附加 /..namedfork/rsrc 将资源分支作为常规文件打开. (这在 <sys/paths.h> 中定义为 _PATH_RSRCFORKSPEC。)虽然丑陋,但它确实使 shell 事件能够访问资源分支,即使不存在可感知的资源分支。示例:

ls -l myfile/..namedfork/rsrc
cp myfile/..namedfork/rsrc ...

资源分支也可作为 com.apple.ResourceFork 使用。扩展属性。 (这在 XATTR_RESOURCEFORK_NAME 中定义为 <sys/xattr.h>。)特别是,f/getxattr()f/setxattr()可以读取和写入资源叉。 _PATH_RSRCFORKSPEC hack实际上是由XNU内核根据扩展属性实现的。

关于macos - 如何在 OS X 64 位应用程序中读取和写入资源分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34496694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com