我在将time_t
转换为struct timeval
时遇到问题。我需要tv_usec
&要从tv_sec
值填充time_t
值。
要填充tv_sec
和tv_usec
,我们需要致电gettimeofday()
。但我不想调用那个函数,因为我有时间在time_t
。从time_t
我想提取/转换为毫秒。由于现有代码,他们使用struct timeval进行填充。
如果你能建议如何从time_t获得毫秒,那就太棒了。
对此的任何帮助都将非常感激。 提前谢谢。
答案 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.