如何转换timeval和time_t?

时间:2013-06-06 01:45:33

标签: c linux

如何将timeval转换为time_t?我正在尝试转换:

struct timeval tv;
time_t tm;
tm = (time_t)tv;

这是吗?

2 个答案:

答案 0 :(得分:1)

timeval定义为:

struct timeval {
    time_t      tv_sec;  // seconds
    suseconds_t tv_usec; // and microseconds
};

time_t定义为:

typedef long time_t;

timeval结构用于指定时间间隔,但time_t用于指定时间(自Epoch以来的秒数)。如果你坚持要转换它,你需要选择时间的tv_sec:

tm = tv.tv_sec;

答案 1 :(得分:0)

定义(来自 man gettimeofday

struct timeval {
           time_t      tv_sec;     /* seconds */
           suseconds_t tv_usec;    /* microseconds */
};

所以你需要做

tm=tv.tv_sec;