Lip*_*eka 5 c linux filesystems
有没有办法将参数发送到ftw()以用于处理路径上的每个文件/目录?由于多线程问题,将关注的参数作为全局变量有点困难,即将全局值视为全局变量并且这将是错误的.
正确设计的C回调接口有一个void*参数,您可以使用该参数将周围代码中的任意数据传递给回调. [n]ftw没有这样的说法,所以你有点像一条小溪.
如果您的编译器支持线程局部变量(__thread存储说明符),您可以使用它们而不是全局变量; 这会起作用但并不比全局变量那么整洁.
如果您的C库具有fts一系列功能,请改用它们.它们适用于大多数现代Unix(包括Linux,OSX和最近的*BSD),而gnulib具有回退实现.