将time_t转换为timeval

sar*_*n b -1 c linux time gcc

我在转换面临的问题time_tstruct timeval.我需要从值中填充tv_usec&值.tv_sectime_t

为了填充tv_sec,tv_usec我们需要打电话gettimeofday().但我不想打电话给那个功能,因为我有时间time_t.从time_t我想要提取/转换为毫秒.由于现有代码,他们使用struct timeval进行填充.

如果你可以建议如何从time_t获得毫秒,那将是很棒的.

任何有关这方面的帮助将非常感激.提前致谢.

sha*_*ats 7

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

struct timeval 
{
     time_t      tv_sec;     /* seconds */
     suseconds_t tv_usec;    /* microseconds */
};
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,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.
Run Code Online (Sandbox Code Playgroud)