gpt4 book ai didi

ubuntu - sleep 和时钟方法

转载 作者:太空宇宙 更新时间:2023-11-04 06:51:37 25 4
gpt4 key购买 nike

int main(void){

int start = clock();
sleep(5);
int end = clock();

printf("%d", (end - start));
return 0;
}

当我在 ubuntu 中执行这段代码时,我得到结果 30;但是,我通过 sleep() 方法在 5 秒内暂停了该过程。为什么结果等于 30 ?

如何计算进程的暂停时间?

最佳答案

clock() 函数返回自进程启动以来使用的 CPU 时间量。要获得以秒为单位的数字,您应该除以常量 CLOCKS_PER_SEC

在大多数情况下,调用 sleep 时不会使用或使用很少的 CPU 时间(我总是返回零)。

您可以使用 time() 获取挂钟时间的秒数:

#include <stdio.h>
#include <time.h>
#include <unistd.h>

int main(void) {

time_t start = time(NULL);
sleep(5);
time_t end = time(NULL);

printf("%.1f\n", difftime(end, start));

return 0;
}

用于计时短间隔 gettimeofday()可能更有用,因为它提供微秒粒度而不是秒,如 time()

关于ubuntu - sleep 和时钟方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50314096/

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