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

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

发布时间:2020-12-16 07:00:00 所属栏目:百科 来源:网络整理
导读:我想使用POSIX scandir() 以递归方式将一个目录复制到另一个目录(如cp -R). 问题是当我复制像/ sys / bus /这样包含更高级别链接的目录时(例如:foo / foo1 / foo2 / foo / foo1 / foo2 / foo / …),系统进入循环状态并永远复制“中间”目录… 如何检查我用d
我想使用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列表,以确保不会出现任何重复项.如果您有两个指向同一文件的硬链接,则没有“一个”规范名称.一种可能性是首先存储所有文件,然后递归所有文件名.您可以将路径结构与inode和文件内容分开存储.

(编辑:李大同)

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

    推荐文章
      热点阅读