我在将 time_t
转换为 struct timeval
时遇到问题。我需要从 time_t
值填充 tv_usec
和 tv_sec
值。
为了填充tv_sec
和tv_usec
,我们需要调用gettimeofday()
。但我不想调用该函数,因为我有时间 time_t
。我想从 time_t 中提取/转换为毫秒。由于现有代码,它们使用 struct timeval 进行填充。
如果您能建议如何从 time_t 获取毫秒,那就太好了。
对此的任何帮助将不胜感激。 提前致谢。
最佳答案
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.
关于将 time_t 转换为 timeval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28108550/