Замена функции nftw
ВСЕ,
В соответствии с этим ntfw устарел в POSIX.1-2008.
Есть ли замена этой функции? Или я должен использовать что-то еще?
TIA!
1 ответ
Из приведенной вами ссылки:
POSIX.1-2001, SVr4, SUSv1. POSIX.1-2008 помечает ftw() как устаревший....
В некоторых системах ftw() никогда не будет использовать FTW_SL, в других системах FTW_SL возникает только для символических ссылок, которые не указывают на существующий файл, и снова в других системах ftw() будет использовать FTW_SL для каждой символической ссылки. Для предсказуемого контроля используйте nftw().
Я считаю, что ftw был заменен на nftw. Так что используйте это.
Лично я бы просто реализовал свое. Каждый учебник по CS вводного уровня, который я когда-либо читал, посвящен обходу файловой системы. Я бы использовал очередь fifo из дескрипторов dir и итеративный цикл в ширину, чтобы избежать ненужных накладных расходов на вызов функций как при обходе, так и в обработчике файлов (реализованном как указатель на функцию в ftw).