うーん。あなたのコードは私のために働きます。インクルードパスを確認してください。これはシステム ヘッダーですが、これを見逃すのはかなり難しいはずです。または、誤って #include <ftw.h>
を持たないバージョンをコンパイルしたのですか? 行?
$ gcc -o ftw ftw.c
$ ./ftw my-directory
File 10
File 11
File 16
File 16
File 16
File 16
File 16
... etc ...
編集 :上記のテストは Mac OS X で行われました。(現在は削除された) コメントで、OP は Debian を使用していると述べており、man ページには #define _XOPEN_SOURCE 500
と記載されています Juliano が指摘するように、必要です。
Linux は、何らかの理由で、まだこの API に SUSv1 を使用しており、nftw() は依然として拡張機能と見なされています。
Linux のマニュアル ページから、インクルードは次のようにする必要があります:
#define _XOPEN_SOURCE 500
#include <ftw.h>