Ben (gcc kconfig_parser.c -o ayrıştırıcı) derleme yaparken bir dizinnftw
#include <ftw.h>
#include <stdio.h>
int wrapper(const char * fpath, const struct stat *sb, int typeflag, struct FTW *ftwbuf) {
printf("File %d\n", ftwbuf->base);
return(0);
}
int main(int argc, char ** argv) {
const char *name;
int flags = 0;
name = argv[1];
nftw(name, wrapper, 20, flags);
return 0;
}
altında bazı dosyaları işlemek için nftw kullanmaya çalışıyorum Uyarısı, ben bu uyarıyı var ve Bu hata ..
kconfig_parser.c:5: warning: ‘struct FTW’ declared inside parameter list
kconfig_parser.c:5: warning: its scope is only this definition or declaration, which is probably not what you want
kconfig_parser.c: In function ‘wrapper’:
kconfig_parser.c:6: error: dereferencing pointer to incomplete type
Ben yapı ve geri arama prototip tanımını kontrol ettik ve bazı örnekler, sorun olmaması gerek ... Neyi yanlış yapıyorum? ...
sayesinde
Aslında çalışmak gerekiyordu nasıl nftw için SUSv2 şartnamesine bağlı (SUSv3 linke güncellendi beri var olan): include Linux manual page itibaren
, olmak zorunda. SUSv2 veya SUSv3 uyumlu bir sistemde, #define gerek duymamalısınız, ancak Linux'ta ihtiyacınız olabilir. –harika ... işe yarıyor ... Bunu bilmiyordum ... teşekkürler – LB40
Brian: Aslında haklısın. Yeni el kitabının alt kısmında aşağıdakileri okuyabilirsiniz: "Sorun 5: X/OPEN UNIX uzantısından BASE'a taşındı." Yani, başlangıçta bir X/OPEN uzantısıydı, sonra üsse taşındı. Nedense, Linux hala bu API'nin SUSv1'ini kullanıyor. – Juliano