gpt4 book ai didi

c - 将 Java NIO Files.walkFileTree 访问者移植到 C,维护线程安全

转载 作者:太空宇宙 更新时间:2023-11-04 03:58:23 29 4
gpt4 key购买 nike

我有一些现有的 Java 代码使用 java.nio.file.Files.walkFileTreeFileVisitor 接口(interface),但现在我需要将它移植到纯 C。这个接口(interface)有 C 等价物吗?如果没有,我可以使用哪些原语来构建一个?

我看过 Unix ftwnftw 函数,但它们似乎不会工作,因为回调函数没有参数提供用户变量(单个 void* 参数会很好)。我的代码需要是线程安全的。

最佳答案

我的一个项目已经有了这种文件遍历的需求。我还需要它在 Linux 和 Windows 上具有可移植性。

我没有找到开源实现,最后自己实现了。这终于不是太多的工作。

在 Linux 端,我使用 opendir()readdir() 来迭代目录条目。
在 Windows 端,我使用 FindFirstFileA()FindNextFileA() 来完成这项工作。
接下来,对于每个条目,我只需调用一个使用过的已定义回调。

两种实现都不会超过 100 行代码...所以我建议您自己动手做。

关于c - 将 Java NIO Files.walkFileTree 访问者移植到 C,维护线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14255900/

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