gpt4 book ai didi

c - 为什么 gettimeofday 返回奇怪的 tv_sec?

转载 作者:行者123 更新时间:2023-11-30 17:14:44 24 4
gpt4 key购买 nike

我有一个应用程序调用gettimeofday来存储该部分代码开始运行的tv_sec。这段代码非常简单:

struct timeval tvnow;
gettimeofday(&tvnow);
int initialTime = tvnow.tv_sec;

它通常工作正常,但有时我会得到意想不到的结果,例如

tvnow = {tv_sec = 1024, tv_usec = 0}
initialTime = 1401591

或者

tvnow = {tv_sec = 1024, tv_usec = 0}
initialTime = 2439903

为什么会发生这种情况?

问候

最佳答案

您使用错误数量的参数调用 gettimeofday()。由此产生的行为是未定义的。如果您不需要时区信息,请传递 NULL 作为第二个参数:

struct timeval tvnow;
gettimeofday(&tvnow, NULL);
int initialTime = tvnow.tv_sec;

我假设您以某种方式包含了包含 struct timeval 定义的 header 组合(或者您提供自己的定义),但不是 的原型(prototype)gettimeofday()。如果在函数调用时有可见的正确原型(prototype),则代码根本不应该编译。如果您的编译器没有发出关于缺少原型(prototype)的警告,那么您应该弄清楚如何让它这样做(并始终以这种方式编译),或者获得更好的编译器。

关于c - 为什么 gettimeofday 返回奇怪的 tv_sec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30194570/

24 4 0
文章推荐: c++ - 如何定义等于-2147483648的常量?
文章推荐: javascript:在回调函数中获取变量的值
文章推荐: javascript - 展开/折叠对象列表
文章推荐: javascript - 使用 标签 onclick 在状态之间导航
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com