发送参数到ftw()

有没有办法发送参数到ftw()来处理path上的每个文件/目录? 由于multithreading问题,将有关论点作为一个全局variables是有点困难的,也就是说所有线程都可以看到全局variables的值,这是错误的。

正确设计的C回调接口有一个void*参数,您可以使用它将周围代码中的任意数据传递到回调函数中。 [n]ftw没有这样的说法,所以你有点儿小溪。

如果你的编译器支持线程局部变量( __thread存储说明符),你可以使用它们来代替全局变量; 这会起作用,但并不比全局变得更加整洁。

如果你的C库有fts系列的功能, fts用这些。 它们在大多数现代Unix(包括Linux,OSX和最近的* BSD)上都可用,而gnulib有一个后备实现 。