Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Mac OS X上的copyfile功能_C++_Macos_Data Transfer_File Copying - Fatal编程技术网

C++ Mac OS X上的copyfile功能

C++ Mac OS X上的copyfile功能,c++,macos,data-transfer,file-copying,C++,Macos,Data Transfer,File Copying,我正在开发一个程序,可以将文件和文件夹从a点复制到b点,这在很大程度上非常简单。我决定使用该函数进行实际复制,因为它处理所有元数据。不管出于什么原因,有许多文件无法复制,即使我以root用户身份运行它。无法复制的示例文件是/usr/share/emacs/22.1/etc/BABYL 我不知道为什么会这样。该文件本身是好的,我可以去它的查找和复制粘贴它,就像它是任何其他普通文件。是否有我遗漏的许可问题?它似乎只对系统文件执行此操作,而不是对所有文件执行此操作。它在将要复制和不会复制的内容上是一致

我正在开发一个程序,可以将文件和文件夹从a点复制到b点,这在很大程度上非常简单。我决定使用该函数进行实际复制,因为它处理所有元数据。不管出于什么原因,有许多文件无法复制,即使我以root用户身份运行它。无法复制的示例文件是
/usr/share/emacs/22.1/etc/BABYL

我不知道为什么会这样。该文件本身是好的,我可以去它的查找和复制粘贴它,就像它是任何其他普通文件。是否有我遗漏的许可问题?它似乎只对系统文件执行此操作,而不是对所有文件执行此操作。它在将要复制和不会复制的内容上是一致的

实际的函数调用如下所示
copyfile(文件路径、destPath、gState、,
COPYFILE|u DATA | COPYFILE_ACL | COPYFILE_STAT | COPYFILE_XATTR)
我得到的错误不是很有用,只是IO错误5

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

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

您必须自己深入挖掘才能找到问题,幸运的是您可以深入挖掘
copyfile()
本身。苹果提供了一个链接,你可以将它链接到你的代码中,然后通过跟踪找到问题所在

注意:您可能需要稍微调整源代码以使其编译,但这样做非常简单。然而,如果你试图陷入困境,问另一个问题,详细说明你尝试了什么,出了什么问题,可能有人会帮助你


HTH

在相同的文件上总是失败吗?如果那是你唯一尝试复制的文件,它会失败吗?您确定在读取源或写入目标时不可能真的发生I/O错误吗?检查系统控制台日志,查看是否记录了任何实际的磁盘I/O错误。有841个文件无法复制,这是我尝试复制整个磁盘时发生的。它在无法复制的内容上是一致的。如果我进入控制台,会出现错误消息,上面写着“打开文件上的应用程序名称\u路径输入输出错误”。如果只是驱动器坏了,我可以理解这一点,但我可以在Finder中找到这些文件并复制/粘贴它们,并且两个驱动器都通过了智能测试,没有错误。你找到过这个问题的答案吗?我问,因为我看到了相同的结果。谢谢,我会尝试一下,看看是否能从中得到任何有用的错误。这是一个建议的方法,但并不是问题的真正答案。@Uchiugaka-是的,因为不可能知道实际问题是什么,但可以建议如何追踪它。如果你面临同样的问题,你可以尝试同样的方法来发现问题。猎得好!我真的在这么做。现在计算出所有的makefile。