如何延迟C中的功能?

时间:2017-04-29 14:13:13

标签: c

我找不到可行的指南所以我问我如何延迟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()也不起作用。

4 个答案:

答案 0 :(得分:6)

sleep正是您要找的。

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