使用ctime获取两个操作之间的间隔?

使用ctime获取两个操作之间的间隔?,c,ctime,C,Ctime,我感兴趣的是使用ctime在不同的点上用C显示程序的执行时间。 我试过这样的方法,但一定不对 int main() { time_t tm1, tm2; tm1 = time(NULL); sleep(2); tm2 = ctime(tm1); printf("%d\n", tm2-tm1); return 0; } 你有什么建议或适当的例子吗? 提前感谢ctime()返回传递给它的时间的字符串表示形式 如果您想要一个简单的运行时间,只需:

我感兴趣的是使用ctime在不同的点上用C显示程序的执行时间。 我试过这样的方法,但一定不对

int main() {

    time_t tm1, tm2;
    tm1 = time(NULL);
    sleep(2);
    tm2 = ctime(tm1);

    printf("%d\n", tm2-tm1);
    return 0;
}
你有什么建议或适当的例子吗? 提前感谢

ctime()
返回传递给它的时间的字符串表示形式

如果您想要一个简单的运行时间,只需:

    time_t t1, t2;
    t1 = time(0);
    sleep(2);
    t2 = time(0);

    printf("Elapsed: %d\n", t2 - t1);

请参见
man ctime
man 2时间

您可以使用
time
函数获取当前时间,并使用
difftime
函数计算两次之间的差值(以秒为单位)(忽略错误处理):

但是,
time\u t
用于测量日历时间。
time
功能通常有1秒的间隔。如果这太粗糙,您可以尝试使用
clock\t
clock
功能(再次省略错误处理):


这取决于你想要得到什么样的结果。如果是秒,则可以通过
time()
在main的开头和结尾获取时间。是的,最好是秒!但是我的代码不起作用:(在这两种情况下都应该使用
time(NULL)
。它返回当前时间。谢谢大家。现在很清楚
difftime(t2,t1)
(这是一种
double
)是一种可移植的方法。
time_t t0, t1;
t0 = time(NULL);
foo();
t1 = time(NULL);
printf("foo() took %f seconds.\n", difftime(t1, t0));
clock_t t0, t1;
t0 = clock();
foo();
t1 = clock();
printf("foo() took %f seconds.\n", (double)((t1 - t0) / CLOCKS_PER_SEC));