Hmm. Váš kód mi funguje. Možná zkontrolujte své začleněné cesty? Přestože se jedná o systémovou hlavičku, mělo by být docela těžké ji přehlédnout. Nebo jste omylem kompilovali verzi, která neměla #include <ftw.h>
řádek?
$ gcc -o ftw ftw.c
$ ./ftw my-directory
File 10
File 11
File 16
File 16
File 16
File 16
File 16
... etc ...
upravit :Výše uvedený test byl proveden na Mac OS X. V (nyní smazaném) komentáři OP uvedl, že je na Debianu, u kterého manuálová stránka uvádí, že #define _XOPEN_SOURCE 500
je nezbytné, jak zdůrazňuje Juliano.
Linux z nějakého důvodu stále používá SUSv1 pro toto API, kde nftw() je stále považováno za rozšíření.
Z manuálové stránky Linuxu musí být include:
#define _XOPEN_SOURCE 500
#include <ftw.h>
Jak spustím program s jiným pracovním adresářem, než je aktuální, z prostředí Linux?
Vim pohyb na jiných programech