Toon posts:

[C/Linux] mktime doet het niet

Pagina: 1
Acties:
  • 33 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik wil het aantal seconde sinds de Unix epoch weten voor een bepaalde tijd. Nou stop ik die tijd in een struct tm:

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:
If the specified broken-down
time cannot be represented as calendar time (seconds since the epoch),
mktime() returns a value of (time_t)(-1)
Maar daar ben ik niet mee geholpen, natuurlijk. Is er een reden dat dit niet werkt? Is er een alternatief?

  • .oisyn
  • Registratie: September 2000
  • Nu online

.oisyn

Moderator Devschuur®

Demotivational Speaker

tm_year Year (current year minus 1900)
Even de documentatie goed doorlezen he

[ Voor 30% gewijzigd door .oisyn op 08-01-2004 21:38 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Dit topic is gesloten.