Этот ответ рекомендует fts
как хороший способ повторного обхода файловой системы. Однако, читая справочные страницы, я заметил, что fts_read
и fts_children
отмечены как MT-Unsafe
.
Я нигде не мог найти информацию о том, почему он был помечен как таковой. Я нашел эту тему, так что подозреваю причина в том, что вызывается chdir
(два потока будут пытаться chdir
выполнить процесс одновременно, это не может быть хорошо).
Если это так, я думаю, что передачи FTS_NOCHDIR
будет достаточно для обеспечения безопасности потоков. Есть ли какая-то другая причина, которую я не вижу?
(И для протокола, я очень удивлен, что мы пришли к этому дню без хорошего реентерабельного, разумного в использовании способа сканирования через дерево файловой системы! Серьезно? ☺)