C++ C+中的睡眠操作+;在OSX上
我希望以毫秒为单位执行上述操作。我应该选择哪个库和函数调用?EDIT 2017:C++11C++ C+中的睡眠操作+;在OSX上,c++,macos,sleep,C++,Macos,Sleep,我希望以毫秒为单位执行上述操作。我应该选择哪个库和函数调用?EDIT 2017:C++11sleep\u for是正确的方法。请看 C++03: 由于MacOSX是基于Unix的,所以您几乎可以始终只使用标准的linux功能 在这种情况下,您可以使用usleep(这需要以微秒为单位的时间),只需将毫秒乘以1000就可以得到微秒 #include <unistd.h> int main () { usleep(1000); // will sleep for 1 ms
sleep\u for
是正确的方法。请看
C++03: 由于MacOSX是基于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
}
#包括
int main(){
usleep(1000);//将睡眠1毫秒
usleep(1);//将睡眠0.001毫秒
usleep(1000000);//将睡眠1秒
}
有关此功能的更多信息,请查看Linux手册页:
如果您的编译器支持C++11,您可以使用
sleep\u for
并避免使用特定于操作系统的API。()
#包括
#包括
int main()
{
std::this_线程::sleep_for(std::chrono::毫秒(1000));
返回0;
}
请使用sleep(整数或数字),除非您需要纳秒或微秒nanosleep(),usleep()可能值得一看。在xcode 4.6.3中,我可以使用c++11支持,但头线程不存在?这是一个比我更好的答案!(谢谢Xornand,我从来没有想过要使用它们!)但是你是对的,要在Xcode中编译C++11头文件,你需要打开C++11库支持。转到导航器中的项目,单击生成设置,然后搜索C++标准库。将项目的设置更改为libc++
。我已经编辑了Xornand的优秀答案以反映此信息,但在我的编辑被接受之前,它将不可见。:)@m_j请将接受的答案更改为此答案!:)如果您是在OS 10.7或更高版本上编译,请参阅下面Xornand的答案!使用C++11比使用特定于操作系统的代码更具跨平台性!要使用C++11功能,必须在Xcode中专门打开它。请参阅下面我对@Xornand答案的评论!睡眠(0.001f)将睡眠0秒(睡眠需要整数),谢谢@cap。我已经修正了答案。更好地使用nanosleep(),usleep()是不推荐的(在POSIX中)。提问者表示他需要毫秒的分辨率<代码>睡眠()提供秒的分辨率。
#include <thread>
#include <chrono>
int main()
{
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
return 0;
}