Estoy intentando utilizar el nftw para procesar algunos archivos en un directoriocon nftw
#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;
}
Cuando estoy compilación (gcc -o kconfig_parser.c analizador), Tengo esta advertencia y este error ..
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
he comprobado la definición de la estructura y el prototipo de la devolución de llamada, y algunos ejemplos, que debería estar bien ... ¿Qué estoy haciendo mal? (He quitado casi todo de mi código para desactivarla) ...
gracias
En realidad, ligada a la especificación de cómo SUSv2 nftw se supone que funciona (que desde entonces he actualizado para el enlace SUSv3). En un sistema compatible con SUSv2 o SUSv3, no debería necesitar ese #define, pero parece que lo puede necesitar en Linux. –
genial ... funciona ... No lo sabía ... gracias – LB40
Brian: De hecho, tienes razón. En la parte inferior de la página del nuevo manual, puede leer: "Problema 5: movido de la extensión X/OPEN UNIX a BASE". Entonces, originalmente era una extensión X/OPEN, luego se movió a la base. Por alguna razón, Linux todavía está utilizando SUSv1 de esta API. – Juliano