等待/暂停C中的秒数

时间:2012-02-11 14:39:24

标签: c windows

我写了一个小控制台应用程序,我希望它在循环(一段时间)再次开始之前暂停一定的秒数。

我正在使用Windows操作系统。

3 个答案:

答案 0 :(得分:11)

在Windows上,执行此操作的功能是Sleep,它会占用您想要睡眠的毫秒。要使用Sleep,您需要添加windows.h

在POSIX-Systems上,函数sleep(来自unistd.h)完成了这个:

   unsigned int sleep(unsigned int seconds);

   DESCRIPTION
          sleep()  makes  the  calling thread sleep until
          seconds seconds have elapsed or a signal arrives which is not ignored.

如果被信号中断,则返回剩余睡眠时间。如果你使用信号,一个更强大的解决方案是:

 unsigned int time_to_sleep = 10; // sleep 10 seconds
 while(time_to_sleep)
     time_to_sleep = sleep(time_to_sleep);

这当然是假设你的信号处理程序只花了不可忽视的时间。 (否则,这会使主程序的延迟时间超过预期)

答案 1 :(得分:3)

易:

while( true )
{
    // your stuff
    sleep( 10 ); // sleeping for 10 seconds
};

答案 2 :(得分:1)

UNIX上:

#include <unistd.h>
sleep(10); // 10 seconds

Windows上:

#include <windows.h>
Sleep(10000); // 10 seconds (10000 milliseconds)

请注意sleep()(UNIX)和Sleep()(Windows)之间的区别。