voglio ottenere la data dell'ultima modifica di un file in C. Quasi tutte le fonti che ho trovato impiego qualcosa seguendo questo frammento:Ottenere la data dell'ultima modifica di un file in C
char *get_last_modified(char *file) {
struct tm *clock;
struct stat attr;
stat(file, &attr);
clock = gmtime(&(attr.st_mtime));
return asctime(clock);
}
Ma la attr
doesn' t hanno anche un campo st_mtime
, solo st_mtimespec
. Tuttavia, quando uso questo mio Eclipse mi dice che passing argument 1 of 'gmtime' from incompatible pointer type
sulla linea clock = gmtime(&(attr.st_mtimespec));
Cosa sto facendo male?
PS: sto sviluppando su OSX Snow Leopard, Eclipse CDT e l'utilizzo di GCC come compilatore multipiattaforma
Sì, altrimenti 'stat' non sarebbe disponibile. –
Sebbene OT: non si vuole memorizzare il riferimento restituito da 'get_last_modified()' no? 'asctime()' restituisce un riferimento alla memoria statica, il cui contenuto verrà sovrascritto su ogni chiamata successiva ad esso. – alk
Si chiama solo una volta, ma lo terrò a mente se dovesse mai cambiare :) –