Замена функции 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).

Другие вопросы по тегам