Digitando man strptime
è necessario che questa funzione abbia dichiarato _XOPEN_SOURCE e incluso l'header time.h. L'ho fatto. Ma, quando provo a compilare il mio codice ottengo:Il compilatore riceve avvisi quando si utilizza la funzione strptime (C)
./check.c:56: avvertimento: dichiarazione implicita di funzione 'strptime'
Guardate il mio codice:
int lockExpired(const char *date, const char *format, time_t current) {
struct tm *tmp = malloc(sizeof(struct tm *));
time_t lt;
int et;
strptime(date, format, tmp);
lt = mktime(tmp);
et = difftime(current, lt);
if (et < 3600)
return -et;
return 1;
}
anche la dichiarazione di funzione è:
char *strptime(const char *s, const char *format, struct tm *tm);
Qualcuno può dirmi da dove viene il mio problema?
Ecco, grazie! È strano che "uomo strptime" sia sbagliato sulla mia macchina Linux; scrive '_XOPEN_SOURCE' che non funziona per me. Detto questo, non sono sicuro di '_GNU_SOURCE' però. '__USE_XOPEN' sembra funzionare da solo per me. – lpapp
assicurati di usare '#define __USE_XOPEN' prima di usare' #include ' –