将 time_t 转换为 timeval

标签 c linux gcc time

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

为了填充tv_sectv_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/

相关文章:

python - 如何运行 C 程序并使用 Twisted Python 获取程序输出

16位对象数组的memcpy可以在两者之间中断吗

c++ - 有什么方法可以让 g++ 只发出与我的文件有关的警告?

windows - windows 中 cl 的 gcc 的 -mwindows 选项是什么?

c - 用Visual C++编译器解释空C `main`函数奇怪的汇编

c timeval 与 timespec

c++ - 从进程加载的 DLL 调用另一个进程中的方法

php - 从 Linux 主文件夹访问文件

c - 获取与预期不同的值在循环中运行。为什么?

c - 如何从系统函数调用中终止后台进程