问题标签 [timeval]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 获得绝对时间的更好方法?
目前我正试图获得绝对的时间来使用pthread_mutex_timedlock
. 我知道我需要将timeval
from添加gettimeofday
到 thetimespec
然后添加我的任意时间。
下面的方法有效,但与如此大的数字相乘时可能会溢出。
有没有更好的方法来做到这一点(我有一个以毫秒为单位的时间):
在上面,我将给定的时间与当前时间相加以获得绝对时间。
我的替代代码是:
我想知道是否有更好的方法来完成上述操作。我宁愿不使用我的替代代码,但以前的代码似乎不太安全,而且我不喜欢模数。
想法?
php - PHP uniqid() 源码相关问题
在 PHP 源代码函数 uniqid() 有以下 C 代码:(我删除了一些类型以缩短它)
如果我们抛开批评,他们会尝试生成 64 位时间戳。
0xF423F可能是CLOCKS_PER_SEC - 1(CLOCKS_PER_SEC 是十进制的 1000000),
但是这个0x100000来自哪里,使用模数而不是按位和的原因是什么?
c++ - 当我尝试将 uint64_t 转换为 struct timeval 时得到一个负值?//已编辑
是否存在舍入误差?那我该怎么做呢?这是从代码转换的其他地方调用的例程。我写了一个小脚本,其中有一个uint64_t
给我一个负数的例子
c - Timeval 结构:libpcap 的负延迟
我正在尝试计算从捕获的数据包到前一个数据包的延迟,两者都来自同一个连接。我使用的是单链表,每个节点对应一个连接;我区分从 IP1 到 IP2 的数据包和从 IP2 到 IP1 的数据包:我使用一个节点来表示连接的方向(IP1 到 IP2),另一个节点来表示连接的相反方向(IP2 到 IP1)。我总是在列表的末尾添加。
我的结构节点如下:
全局指针变量,用于获取列表的第一个和最后一个节点:
这是pcap_loop
每次我收到数据包时调用的回调函数的伪代码:
这是输出的片段,仅用于一个连接:
在数据包编号 1003 中,我得到 -198 微秒的负延迟;这是因为pcap_pkthdr
struct 内部的时间戳比旧时间戳的微秒数更少,从而导致负值。任何线索为什么最近的时间戳比旧的时间戳少?
c - 在 C 中测量时间会给出错误的结果
我正在尝试以微秒为单位测量 C 中的时间。我尝试了这段代码,但该值time_passed
是一个巨大的数字,而不是 0(或 1)。
c - 将 void 指针作为函数参数传递并将其转换为 timeval 数组
假设我有一个函数calc_sum()
,我想测量它的执行时间。我有一个回调函数info_callback()
,它打印一条消息并计算执行时间,它以 void 指针作为参数。我想强制void*
转换struct timeval *
以检索执行时间的开始/结束并计算差异,但我不明白如何将指针传递给数组struct timeval *
,以便我可以从info_callback()
函数内访问它的元素。无论我尝试什么,我都会遇到分段错误...
我应该如何传递和转换指针以使其工作?
编辑:修复了Andy Schweig建议的代码错误
c++ - 使用 struct timeval 设置 LibModbus 上的响应超时
我正在使用库 LibModbus 连接 ADAM 设备。我之前在向设备发送一些命令时遇到了一些问题,但设置了更大的响应超时它已修复,这是在库的先前版本中。
现在,我正在使用最新的库,其中 set_response_timeout 使用 timeval 结构。链接到库中的函数手册: Get_response_timeout / set_response_timeout
我正在使用以下库
但是,如果我使用 get_response_timeout 打印响应超时的值,在设置它之前和之后,它会返回相同的值:
modbus_get_response_timeout(mb, &old_response_timeout) 设置前的响应 old_tv_sec: 500000, old_tv_usec: 23224832
要发送到 modbus_set_response_timeout(mb, &response_timeout) 的 timeval 结构的值 to_set_tv_sec: 60, to_set_tv_usec: 0
设置新值后 modbus_get_response_timeout(mb, &old_response_timeout) 的响应。
new_tv_sec: 500000, new_tv_usec: 23224832
c++ - 在 macOS 上使用 time.h 进行交叉编译
我想在macos上编译以下代码:
但我得到了错误
错误:“TIMEVAL_TO_TIMESPEC”未在此范围
TIMEVAL_TO_TIMESPEC (&tv, tp) 中声明;
我正在使用android的交叉编译器进行编译。我尝试明确包含 time.h 标头,但仍然找不到 TIMEVAL_TO_TIMESPEC。如何正确编译此代码?
c - 如何将 timeval 设置为随机时间
我在一些超时后使用 libevent 执行一些任务,超时是随机选择的,并且每次都更改。问题是我无法将 timeval 变量设置为随机时间。
它返回这些错误:错误:初始化元素不是常量错误:(接近初始化'poll_interval_tv.tv_sec')
c - 如何在 timeval 结构中从秒转换为纳秒?
我想将我的 timeval 结构从秒转换为纳秒,实现这一目标的最佳算法是什么?