OS X 上的C++睡眠操作

Sleep operation in C++ on OS X

本文关键字:操作 C++ 上的 OS      更新时间:2023-10-16

我想以毫秒为单位执行上述操作作为单位。我应该首选哪个库和函数调用?

编辑 2017: C++11 sleep_for 是执行此操作的正确方法。请看下面Xornad的回答。


C++03:

由于Mac OS X是基于Unix的,因此您几乎总是可以使用标准的linux功能!

在这种情况下,您可以使用usleep(以微秒为单位花费时间),只需将毫秒乘以 1000 即可获得微秒。

#include <unistd.h>
int main () {
    usleep(1000); // will sleep for 1 ms
    usleep(1); // will sleep for 0.001 ms
    usleep(1000000); // will sleep for 1 s
}

有关此函数的更多信息,请查看 Linux 手册页:

http://linux.die.net/man/3/usleep

如果您的编译器中有 C++11 支持,则可以使用该sleep_for,而不必使用特定于操作系统的 API。(http://en.cppreference.com/w/cpp/thread/sleep_for)

#include <thread>
#include <chrono>
int main()
{
    std::this_thread::sleep_for(std::chrono::milliseconds(1000));
    return 0;
}

请只使用睡眠(整数或数字),除非你需要纳秒或微秒