Is there a wait statement in c-component? for example, wait for 0.5 second before continuing the process?
thanks!
In POSIX there is
usleep(500);
and
nanosleep(...);
have a look at the manual of usleep(3)
and nanosleep(2)
. EDIT: nanosleep
seems now to be the way to go, usleep
is even deprecated in POSIX.2008
according to its manpage!
总结和纠正 Johannes Weiss 帖子中的一个小问题(非德语键盘,抱歉):
在老式 POSIX 中,您可以使用 usleep() 函数,该函数接受睡眠的微秒数作为无符号整数参数。因此,要睡半秒钟,你会打电话:
#include <unistd.h>
usleep(500000); /* Five hundred thousand microseconds is half a second. */
对于较新的 POSIX 风格的程序(我的 Gentoo Linux 盒子的手册页说它是 POSIX.1-2001),你会使用 nanosleep(),它需要一个指向保持睡眠周期的结构的指针。睡半秒会是这样的:
#include <time.h>
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 是(足够接近)零,以确保你真的得到你的睡眠,无论任何中断。
For Windows there is this function available in the API
Sleep(500);
Have a look at its MSDN page. It sleeps for the specified amount of milliseconds.
sleep 在 POSIX 中也可用,不同之处在于参数指定进程应该休眠的秒数而不是毫秒数。