来自这里的消息来源说它应该在iPhone上运行.我已经使用它了,但是我得到了2个错误,说msleep()是未声明的.我试图包括unistd.h,time.h和许多其他人.我怎样才能让它发挥作用?谢谢.
该链接线程中没有任何内容表明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);
}
Run Code Online (Sandbox Code Playgroud)
但是,您应该小心使用该代码,因为我认为,根据记忆,这select()
是可中断的。
该msleep()
是从早期的BSD系统非标准的神器,之前clock_nanosleep()
并nanosleep()
使它成为POSIX.
它是不可移植的.在某些系统上,它默认可用 - 在其他系统上,必须使用_BSD_SOURCE
define 编译代码.
iPhone是Mac OS X的远亲,它与NeXT相距甚远,后者与BSD 4.x相距甚远.所以函数可能会卡在某处的某个头/库中,但不管怎样你都不应该使用它.如果没记错的话,检查NSThread
的sleepForTimeInterval:
静态方法.
归档时间: |
|
查看次数: |
19080 次 |
最近记录: |