我找不到可行的指南所以我问我如何延迟C中的函数,换句话说,如何让程序在继续执行其他函数之前等待一定的秒数?
例如:
printf("First Function.\n");
//program waits a certain number of seconds before executing next command
printf("Second function executed after certain amount of seconds");
我想知道,我使用什么命令来实现这一目标?
delay();
对我来说不顺便。
我必须补充一点,sleep()
也不起作用。
答案 0 :(得分:6)
sleep
正是您要找的。 p>
printf("First Function.\n");
sleep(20); // Replace 20 with the "certain amount"
printf("Second function executed after certain amount of seconds")
答案 1 :(得分:1)
您可以使用Sleep()或选择添加延迟。
答案 2 :(得分:0)
sleep()
函数是POSIX。如果需要更高的精度,还有POSIX函数nanosleep()
。
C11中有thrd_sleep()
函数(来自threads.h
),但glibc仍然不支持AFAIK这个函数。
可以使用time.h
:
#include <stdio.h>
#include <time.h>
void my_sleep(unsigned);
void delay_print(char *);
int main(void)
{
delay_print("What is taking so long?");
delay_print("Glad that's over!");
}
void my_sleep(unsigned duration)
{
time_t start = time(NULL);
double end = duration;
time_t now;
do {
now = time(NULL);
} while (difftime(now, start) < end);
}
void delay_print(char *msg)
{
my_sleep(5);
puts(msg);
}
答案 3 :(得分:0)
您可以轻松使用:
sleep(unsigned int seconds); // from the unistid.h
Sleep(int milliseconds); // from the Windows.h