gpt4 book ai didi

c - 使用 scandir() 时打开每个文件但不打开到其他目录的链接

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

我想使用 POSIX scandir() 将一个目录递归复制到另一个目录(如 cp -R) .

问题是,当我复制像/sys/bus/这样的目录时,它包含指向更高级别的链接(例如:foo/foo1/foo2/foo/foo1/foo2/foo/...),系统进入循环状态并永远复制“中间”的目录...

如何检查我用 dirent 打开的文件是否是链接?

最佳答案

看看这个:How to check whether two file names point to the same physical file

您需要存储您访问过的 inode 列表,以确保您没有得到任何重复项。如果您有两个指向同一个文件的硬链接(hard link),则没有“一个”规范名称。一种可能性是首先存储所有文件,然后递归遍历所有文件名。您可以将路径结构与 inode 和文件内容分开存储。

关于c - 使用 scandir() 时打开每个文件但不打开到其他目录的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10693329/

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