Hmm. Votre code fonctionne pour moi. Vérifiez vos chemins d'inclusion, peut-être ? Bien qu'il s'agisse d'un en-tête système, il devrait être assez difficile de le manquer. Ou avez-vous accidentellement compilé une version qui n'avait pas le #include <ftw.h>
ligne ?
$ gcc -o ftw ftw.c
$ ./ftw my-directory
File 10
File 11
File 16
File 16
File 16
File 16
File 16
... etc ...
modifier :Le test ci-dessus a été effectué sur Mac OS X. Dans un commentaire (maintenant supprimé), l'OP a mentionné qu'il était sur Debian, pour lequel la page de manuel mentionne que #define _XOPEN_SOURCE 500
est nécessaire, comme le souligne Juliano.
Linux, pour une raison quelconque, utilise toujours SUSv1 pour cette API, où nftw() est toujours considéré comme une extension.
À partir de la page de manuel de Linux, l'inclusion doit être :
#define _XOPEN_SOURCE 500
#include <ftw.h>