Версия glibc struct tm имеет дополнительные поля
long tm_gmtoff; /* Seconds east of UTC */
const char *tm_zone; /* Timezone abbreviation */
(Ref: http://linux.die.net/man/3/ctime )
Мой вопрос: если у меня есть данные с именем struct tm a, и я хотел бы скопировать их в другую структуру tm b, как показано ниже:
time_t t = time(0);
const tm *pa = localtime(&t);
struct tm a;
if(pa) {
memcpy(&a, pa, sizeof(a));
}
Но что будет с tm_gmtoff и tm_zone? Как скопировать эти поля тоже?
Это работа для вашего компилятора. Он примет все необходимые меры.
Просто делать:
struct tm a = *localtime(&t);
Других решений пока нет …