Hmm. Dein Code funktioniert bei mir. Überprüfen Sie vielleicht Ihre Include-Pfade? Obwohl dies ein System-Header ist, sollte es ziemlich schwer sein, dies zu übersehen. Oder haben Sie versehentlich eine Version kompiliert, die nicht den #include <ftw.h>
hatte Linie?
$ gcc -o ftw ftw.c
$ ./ftw my-directory
File 10
File 11
File 16
File 16
File 16
File 16
File 16
... etc ...
bearbeiten :Der obige Test wurde unter Mac OS X durchgeführt. In einem (inzwischen gelöschten) Kommentar erwähnte das OP, dass er sich auf Debian befinde, für das die Manpage diesen #define _XOPEN_SOURCE 500
erwähnt ist notwendig, wie Juliano betont.
Linux verwendet aus irgendeinem Grund immer noch SUSv1 für diese API, wobei nftw() immer noch als Erweiterung betrachtet wird.
Aus der Linux-Handbuchseite muss das Include lauten:
#define _XOPEN_SOURCE 500
#include <ftw.h>