加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – Mac OS X上的copyfile功能

发布时间:2020-12-16 07:12:15 所属栏目:百科 来源:网络整理
导读:我正在开发一个程序,将文件和文件夹从a点复制到b点,大部分都很简单.我决定使用 copyfile函数进行实际复制,因为它处理所有元数据.无论出于何种原因,即使我以root身份运行它,也有许多文件无法复制.无法复制的示例文件是/usr/share/emacs/22.1/etc/BABYL 我不知
我正在开发一个程序,将文件和文件夹从a点复制到b点,大部分都很简单.我决定使用 copyfile函数进行实际复制,因为它处理所有元数据.无论出于何种原因,即使我以root身份运行它,也有许多文件无法复制.无法复制的示例文件是/usr/share/emacs/22.1/etc/BABYL

我不知道为什么会这样.文件本身很好,我可以在Finder中找到它并复制并粘贴它就像任何其他普通文件一样.是否有一些我遗失的许可问题?它似乎只对系统文件执行此操作,但不是全部.它的意图是一致的,也不会复制.

实际的函数调用看起来像这样
copyfile(filePath,destPath,gState,
COPYFILE_DATA | COPYFILE_ACL | COPYFILE_STAT | COPYFILE_XATTR);
我得到的错误不是很有用,只是IO错误5.

是否有我遗漏的东西导致它不能用于某些文件?或者copyfile只是不做certian事情?有没有比copyfile更好的方法来复制文件及其所有属性/元数据?

请不要建议其他复制文件的程序,这不是我在这里的目的.
谢谢!

解决方法

你将不得不深入挖掘自己以找到你的问题,幸运的是你可以挖掘copyfile()本身. Apple提供了 full source,您可以将其链接到您的代码中,然后跟踪它以查找问题.

注意:您可能需要稍微调整源代码才能进行编译,但这样做很简单.然而,如果你试图陷入困境,请问另一个问题,详细说明你曾经尝试过的和出了什么问题,有人可能会帮助你.

HTH

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读