当前位置:  开发笔记 > 运维 > 正文

在C组件中等待语句?

如何解决《在C组件中等待语句?》经验,为你挑选了2个好方法。

c组件中是否有等待语句?例如,在继续该过程之前等待0.5秒?

谢谢!



1> Johannes Wei..:

在POSIX中有

usleep(500);

nanosleep(...);

看看的手动usleep(3)nanosleep(2).编辑:nanosleep现在似乎是要走的路,usleep甚至POSIX.2008根据其手册页被弃用!



2> unwind..:

总结并纠正Johannes Weiss的帖子中的一个小问题(非德语键盘,对不起):

在旧式POSIX中,您可以使用usleep()函数,该函数接受作为无符号整数参数休眠的微秒数.因此,要睡半秒钟,你会打电话:

#include 
usleep(500000); /* Five hundred thousand microseconds is half a second. */

对于较新的POSIX风格的程序(我的Gentoo Linux盒子'手册页说它是POSIX.1-2001),你会使用nanosleep(),它需要一个指向一个结构的指针来保持睡眠时间.睡半秒钟看起来像这样:

#include 
struct timespec t;
t.tv_sec = 0;
t.tv_nsec = 500000000; /* Five hundred million nanoseconds is half a second. */
nanosleep(&t, NULL); /* Ignore remainder. */

nanosleep()的第二个参数称为"rem",如果睡眠以某种方式中断,则接收剩余的时间.为简单起见,我把它留在NULL,这里.你可以做一个循环,直到rem(足够接近)为零,以确保你真正得到你的睡眠,无论任何中断.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有