如何编写一个C程序来执行特定的处理器秒数?

如何编写一个C程序来执行特定的处理器秒数?,c,busy-waiting,cpu-time,C,Busy Waiting,Cpu Time,我需要一个C程序,它将执行作为参数传入的精确CPU秒数。我需要这样一个程序来测试监控进程CPU使用情况的代码 例如: busywait x 应该在我的处理器上运行x秒。我想你可以在shell中键入sleep x,其中x是秒。我只在Mac上的bash上进行了测试,但我相信其他Unix也应该有同样的功能。这是我为解决我的问题而编写的C程序。它持续检查时钟周期数,直到使用了正确的处理器秒数 #include <stdio.h> #include <time.h> int m

我需要一个C程序,它将执行作为参数传入的精确CPU秒数。我需要这样一个程序来测试监控进程CPU使用情况的代码

例如:

busywait x

应该在我的处理器上运行x秒。

我想你可以在shell中键入sleep x,其中x是秒。我只在Mac上的bash上进行了测试,但我相信其他Unix也应该有同样的功能。

这是我为解决我的问题而编写的C程序。它持续检查时钟周期数,直到使用了正确的处理器秒数

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

int main(int argc, char * argv[])
{
     clock_t start, end;
     double cpu_time_used;
     int wait;

     sscanf(argv[1], "%d", &wait);

     start = clock();
     end = clock();
     while (((double) (end - start)) / CLOCKS_PER_SEC < wait)
     {
          end = clock();
     }
}

据我所知,sleep命令没有忙着等待。然而,我似乎找不到一个确切的链接来支持我的观点。睡眠?根据定义,这不是一个忙碌的等待。顺便说一句,在旧的ms dos操作系统中,睡觉可能很忙。我认为浪费CPU周期而不去做任何有价值的事情的更简单的方法是构建自己的dirtysleep程序,去消耗CPU时间:是的,我环顾了一下四周,但事实并非如此。对不起@但是睡眠和忙碌等待的主要区别是什么,我的意思是当我们使用忙碌等待而不是睡眠时