复制struct tm

时间:2017-04-28 09:46:14

标签: c++ glibc tm time-t

struct tm的glibc版本有其他字段

long tm_gmtoff;           /* Seconds east of UTC */
const char *tm_zone;      /* Timezone abbreviation */

(参考:http://linux.die.net/man/3/ctime) 我的问题是:如果我有一个名为struct tm a的数据,我想将其复制到另一个struct 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会发生什么?如何复制这些字段?

1 个答案:

答案 0 :(得分:2)

这是编译器的工作。它将采取一切必要的行动 只是做:

struct tm a = *localtime(&t);