time_t
- это обычно целочисленный тип, указывающий секунды с начала эпохи, поэтому вы сможете добавить 335 (пять минут и 35 секунд).
Имейте в виду, что стандарт ISO C99 гласит:
Диапазон и точность времен, представляемых в clock_t
и time_t
, определяются реализацией.
Так что, хотя это обычно работает (и работает на каждой системе, которую я когда-либо использовал), могут быть некоторые крайние случаи, когда это не так.
См. Следующую модификацию вашей программы, которая добавляет пять минут (300 секунд):
#include<stdio.h>
#include<time.h>
void print_time(time_t tt) {
char buf[80];
struct tm* st = localtime(&tt);
strftime(buf, 80, "%c", st);
printf("%s\n", buf);
}
int main() {
time_t t = time(NULL);
print_time(t);
t += 300;
print_time(t);
return 0;
}
Вывод:
Sat Nov 6 10:10:34 2010
Sat Nov 6 10:15:34 2010