等待/暂停C中的秒数

Ldx*_*Ldx 9 c windows

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

我正在使用Windows操作系统.

fnl*_*fnl 11

在Windows上,执行此操作的功能是Sleep,它需要您想要睡眠的毫秒数.要使用Sleep,您需要包含windows.h.

在POSIX-Systems上,函数sleep(from 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.
Run Code Online (Sandbox Code Playgroud)

如果它被信号中断,则返回剩余的睡眠时间.如果您使用信号,更强大的解决方案将是:

 unsigned int time_to_sleep = 10; // sleep 10 seconds
 while(time_to_sleep)
     time_to_sleep = sleep(time_to_sleep);
Run Code Online (Sandbox Code Playgroud)

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

  • Sleep()工作正常,包括<windows.h> (3认同)