Кстати, может кому-то пригодится - в ядре Linux есть свой mktime(...) -
суть в получении ПРАВИЛЬНОГО кол-ва секунд с начала unix-эры.
:
#include <linux/types.h>
struct timeval now;
struct tm tm_now_val;
do_gettimeofday(&now);
time_to_tm(now.tv_sec, 0, &tm_now_val);
current_time = mktime(
tm_now_val.tm_year,
tm_now_val.tm_mon,
tm_now_val.tm_mday,
tm_now_val.tm_hour,
tm_now_val.tm_min,
tm_now_val.tm_sec);
Таким же образом парсим второй tm и сравниваем как подсказал darkelf .
В Windows тоже есть difftime(). В ядре Linux для соблюдения прототипа можно, наверное, написать что-то типа:
#define difftime(a, b) (double)((int64_t)(a) - (int64_t)(b))
Правда не уверен, что в ядре Linux можно использовать числа с плавающей запятой. Думаю, что можно ограничиться и
#define difftime(a, b) ((int64_t)(a) - (int64_t)(b))