4
有没有办法将参数发送到ftw()以用于处理路径上的每个文件/目录?由于多线程问题,将有关论点作为全局变量有点困难,即,所有线程都可以看到全局值,这是错误的。将参数发送到ftw()
有没有办法将参数发送到ftw()以用于处理路径上的每个文件/目录?由于多线程问题,将有关论点作为全局变量有点困难,即,所有线程都可以看到全局值,这是错误的。将参数发送到ftw()
正确设计的C回调接口有一个void*
参数,您可以使用该参数将周围代码中的任意数据传递到回调函数中。 [n]ftw
没有这样的说法,所以你有点儿小溪。
如果您的编译器支持线程局部变量(__thread
存储区分符),则可以使用它们而不是全局变量;这将工作,但并不比全局更加整洁。
如果您的C库有fts
函数系列,请改用它们。它们适用于大多数现代Unix(包括Linux,OSX和最近的* BSD)以及gnulib has a fallback implementation。
谢谢...会给我一个尝试 –
'__thread'是非标准的,不可移植的,但你可以改为使用'pthread_key_create'和'pthread_setspecific' /'pthread_getspecific'。 –