C ++ usleep在Linux上立即返回

时间:2018-09-11 03:48:53

标签: c++

简单用法:

#include <unistd.h>
#include <iostream>

int main()
{   
    std::cout << usleep(20 * 1000) << std::endl;

    return 0;
}

g++ main.cpp编译。可执行文件退出,立即打印0表示未检测到错误。那怎么了?

1 个答案:

答案 0 :(得分:2)

实际上,您传递给usleep()的参数以微秒为单位。因此,在20毫秒内程序将退出。您可以改为传递20 * 1000000,也可以使用chrono库。

#include <iostream>       // std::cout, std::endl
#include <thread>         // std::this_thread::sleep_for
#include <chrono>         // std::chrono::seconds

int main() 
{
  std::cout << "countdown:\n";
  for (int i=10; i>0; --i) {
    std::cout << i << std::endl;
    std::this_thread::sleep_for (std::chrono::seconds(1));
  }
  std::cout << "Lift off!\n";

  return 0;
}