来自here的消息来源说它应该适用于iPhone。我已经使用它了,但是我得到了2个错误,说msleep()是未声明的。我试图包括unistd.h,time.h和许多其他人。我怎样才能让它发挥作用?感谢。
答案 0 :(得分:5)
msleep()
是来自早期BSD的非标准工件,在clock_nanosleep()
和nanosleep()
进入POSIX之前。
这是不可移植的。在某些系统上,它默认可用 - 在其他系统上,必须使用_BSD_SOURCE
define编译代码。
iPhone是Mac OS X的远亲,它与NeXT相距甚远,后者与BSD 4.x相距甚远。所以这个函数可能会卡在某个某个头/库中,但你不应该使用它。如果内存对我有用,请检查NSThread
的{{1}}静态方法。
答案 1 :(得分:4)
该链接线程中没有任何内容表明msleep
可用。原作者bagusflyer
实际上实现了他们的拥有 msleep
,说明:
对不起。也许我在代码中遗漏了一些东西。这是我的问号:
#include <sys/time.h>
void msleep (unsigned int ms) {
int microsecs;
struct timeval tv;
microsecs = ms * 1000;
tv.tv_sec = microsecs / 1000000;
tv.tv_usec = microsecs % 1000000;
select (0, NULL, NULL, NULL, &tv);
}
但是,您应该小心使用该代码,因为我认为从内存中select()
是可中断的。
答案 2 :(得分:1)
也许你可以使用usleep()。它也在unistd.h。