C gettimeofday差不给我一个时间范围

C gettimeofday差不给我一个时间范围,c,time,C,Time,我正在用c写一些基本的东西,它是执行一个shell脚本所需时间的倍 我有 gettimeofday(&start, NULL); // code here gettimeofday(&end, NULL); // print end - start 我知道timeval结构中有tv_sec和tv_usec,我对此进行了说明,但即使对于“sleep 3”这样的脚本,我仍然得到了0,因为这是结束-开始差异。有人猜测为什么吗 试试这个例子: double dtime(){

我正在用c写一些基本的东西,它是执行一个shell脚本所需时间的倍

我有

gettimeofday(&start, NULL);
// code here

gettimeofday(&end, NULL);
// print end - start
我知道timeval结构中有tv_sec和tv_usec,我对此进行了说明,但即使对于“sleep 3”这样的脚本,我仍然得到了0,因为这是结束-开始差异。有人猜测为什么吗

试试这个例子:

double dtime(){
    double t;
    struct timeval tv;
    gettimeofday(&tv, NULL);
    t = tv.tv_sec + ((double)tv.tv_usec)/1e6;
    return t;
}

…
double t0 = dtime();
…
printf("Time spend: %g seconds\n", dtime()-t0);
您应该阅读以下内容:


尝试使用
clock\u gettime(clock\u MONOTONIC,…)

你是对的:在严肃的软件开发中,开发人员只能这样做。我的方法只适用于简单的自用物品。