gpt4 book ai didi

在 Linux/UNIX 上以纯 C 递归复制目录

转载 作者:太空狗 更新时间:2023-10-29 12:06:42 25 4
gpt4 key购买 nike

有人可以指导我寻找可能的解决方案吗?我不想使用 /bin/cp 或任何其他外国应用程序。我希望我的程序是独立的。另外我知道每个系统都非常具体,所以我对 UNIX/Linux 兼容性很感兴趣。

我该如何解决?只是在源目录下并在目标目录中创建一个新目录并将文件复制到其中,还是有更好的解决方案?

顺便说一句,我的目标是:将所有一级子目录递归复制到目标目录中(如果它们不存在)

最佳答案

您确实需要某种递归下降到目录树中。这样做,您实际上可以使它非常便携(在 Linux 上使用 opendir/readdir,在 Linux 上使用 FindFirstFile/FindNextFile window )。剩下的问题是实际的复制。您可以通过以下算法使用 C 标准库:

  • 打开源文件
  • 打开目标文件
  • 在一个循环中,fread 来自源的一个恒定大小的 block ,然后fwrite 到目标。如果源文件不包含更多数据则停止

希望这有帮助:)

关于在 Linux/UNIX 上以纯 C 递归复制目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9192295/

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