将time_t转换为timeval

时间:2015-01-23 11:07:43

标签: c linux gcc time

我在将time_t转换为struct timeval时遇到问题。我需要tv_usec&要从tv_sec值填充time_t值。

要填充tv_sectv_usec,我们需要致电gettimeofday()。但我不想调用那个函数,因为我有时间在time_t。从time_t我想提取/转换为毫秒。由于现有代码,他们使用struct timeval进行填充。

如果你能建议如何从time_t获得毫秒,那就太棒了。

对此的任何帮助都将非常感激。 提前谢谢。

1 个答案:

答案 0 :(得分:5)

struct timeval的定义(在<sys/time.h>中):

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

正如您所看到的,time_t只能保持,您无法从time_t获得毫秒。如果您真的想使用timeval对象,只需定义一个timeval对象,然后手动将time_t变量添加到该对象中。即,

time_t time_here; //Your time_t variable.
timeval time_now; //Your timeval object.
time_now.tv_sec = time_here; //Assign time_here to this object.
time_now.tv_usec = 0; //As time_t can hold only seconds.