Sto cercando di utilizzare il nftw per elaborare alcuni file in una directoryWarning con 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;
}
Quando sto compilando (gcc -o kconfig_parser.c parser), Ho questo avvertimento e questo errore ..
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
ho controllato la definizione della struct e il prototipo della richiamata, e alcuni esempi, si dovrebbe andare bene ... che cosa sto facendo di sbagliato? (Ho rimosso quasi tutto del mio codice per cancellarlo) ...
grazie
In realtà, ho legato alla specifica SUSv2 per come nftw dovrebbe funzionare (che allora ho aggiornato al link SUSv3). Su un sistema compatibile SUSv2 o SUSv3, non dovresti aver bisogno di #define, ma sembra che tu possa averne bisogno su Linux. –
fantastico ... funziona ... non lo sapevo ... grazie – LB40
Brian: In effetti, hai ragione. Nella parte inferiore della nuova pagina di manuale è possibile leggere: "Problema 5: spostato dall'estensione X/OPEN UNIX a BASE.". Quindi, originariamente era un'estensione X/OPEN, quindi spostato alla base. Per qualche ragione, Linux sta ancora utilizzando SUSv1 di questa API. – Juliano