格式化时间(使用timespec)以获得以纳秒为单位的正确值
formatting time (using timespec) to get the right value in nano seconds
我希望格式化ns和ns_old,以便验证是否遵守所设置的inter_arrival(即,如果我给出inter_arreval=10,它应该正确地反映在ns_diff中)。有人能详细介绍一下如何做到这一点吗。
#include <iostream>
#include <stdlib.h>
#include <ctime> // for getting time
#include <sys/time.h> // for time
#include <unistd.h> // for microsecond sleep
#include <stdint.h> // for different integer types
#include <stdint.h>
uint64_t ns, sec, ns_old, ns_diff;
struct timespec ts;
int inter_arrival = 10;
void ttime_func(){
clock_gettime(CLOCK_MONOTONIC, &ts);
ns = ts.tv_sec * 1000000000 + ts.tv_nsec;
ns_diff = ns -ns_old;
// writing to my output log file
std::cout << ns_old << "t" << ns << "t" << ns_diff << "t" << std::endl;
ns_old = ns;
usleep(inter_arrival);
}
int main()
{
for(int i=0;i<15;i++)
{
ttime_func();
}
}
根据任何睡眠函数,它们的睡眠都不像我们提到的那样。正如我们提到的那样,它试图入睡。起床时间不同。特别是时间间隔过短会导致睡眠间隔的准确性下降。
相关文章:
- 以天C++为单位的两个时间戳之间的差异
- 如何以毫秒为单位获取开始时间和 now() 之间的毫秒差异(以 C++为单位?
- 如何找到两个日期之间的时间差异(以秒和纳秒为单位)?
- 如何在python和C++中以毫秒为单位打印相同的时间
- C++ 旧时间到现在的时间(以小时为单位)
- 如何找到纪元时间戳和 std::chrono::system_clock::now 之间的时差(以毫秒为单位)
- 仅使用C++中的标准库获取以毫秒为单位的当前日期和时间
- 以秒为单位将时间从纪元转换为一年中的某一天?
- 如何使用闰秒以微秒为单位获取 UTC 时间
- 测量 std::系统的实际执行时间(以 C++ 为单位)
- 优先级队列的时间复杂度(以C++为单位)
- C++以微秒为单位解析日期/时间
- 以C++为单位的聚合代码块的墙时间
- 使用 c++ 获取两个日期与时间字符串之间的差异(以秒为单位)
- 如何在跨平台C++中以毫秒为单位获得系统启动/启动时间(它应该在Windows / IOS / Android / MA
- 以 ns3 为单位计算数据包接收时间
- 如何在C++中以毫秒为单位获取今天的 UTC 午夜时间?
- 计算以毫秒为单位的分类算法对整数阵列排序的时间
- 如何以毫秒为单位获得当前时间
- 以C++为单位测量程序的 CPU 时间和挂钟时间