Ik wil het aantal seconde sinds de Unix epoch weten voor een bepaalde tijd. Nou stop ik die tijd in een struct tm:
Maar mktime retourneert altijd -1:
Nou zegt de handleiding:
C:
1
2
3
4
| time.tm_mon=atoi(strtok(NULL, "-"))-1; // etcetera etcetera time.tm_year=atoi(strtok(NULL, "-")); return (long)mktime(&time); |
Maar mktime retourneert altijd -1:
code:
1
2
3
4
5
6
| (gdb) p time
$11 = {tm_sec = 0, tm_min = 37, tm_hour = 11, tm_mday = 2, tm_mon = 11,
tm_year = 2003, tm_wday = 0, tm_yday = 0, tm_isdst = 0, tm_gmtoff = 1,
tm_zone = 0x0}
(gdb) p mktime(&time)
$12 = -1 |
Nou zegt de handleiding:
Maar daar ben ik niet mee geholpen, natuurlijk. Is er een reden dat dit niet werkt? Is er een alternatief?If the specified broken-down
time cannot be represented as calendar time (seconds since the epoch),
mktime() returns a value of (time_t)(-1)