gpt4 book ai didi

c++ - 格式化时间(使用 timespec)以纳秒为单位获得正确的值

转载 作者:行者123 更新时间:2023-11-28 06:26:32 28 4
gpt4 key购买 nike

我希望格式化 ns 和 ns_old,以便我验证是否遵守设置的 inter_arrival(即,如果我给 inter_arrival =10,它应该正确地反射(reflect)在 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();
}

}

最佳答案

根据任何 sleep 功能,它们并不像我们提到的那样完全 sleep 。正如我们提到的,它“试图”休眠。起床时间不时不同。特别是,时间间隔太短, sleep 间隔的准确性会降低。

关于c++ - 格式化时间(使用 timespec)以纳秒为单位获得正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28431158/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com