是否存在某种用于在程序中创建延迟的命令

时间:2018-07-29 20:11:21

标签: c delay sleep usleep

许多人告诉我,有一种更好的方法来产生 X 毫秒的延迟。人们告诉我有关睡眠命令和usleep()的信息,但我无法完成这项工作。

当前我正在使用此

void delay(unsigned int mseconds) {
    clock_t goal=mseconds+clock();
    while(goal>clock());
}

然后这样做

delay(500);
printf("Hello there");

我可以让文本在半秒钟后出现,但是我想找到一种更好的方法来这样做,因为人们告诉我这是一种不好的方法,而且可能不太准确。

2 个答案:

答案 0 :(得分:1)

我想通了一切!!!上帝我在第一次尝试使sleep()命令有效时被甩了

#include<stdio.h>
#include<windows.h>

int main(){

    int load;
    int Loadwait=100

    for(load=0;load<100;load+=5){
        printf("Loading %d",load);
        Sleep(Loadwait);
        system("cls");
    }
    return 0;
}

答案 1 :(得分:0)

使用musl libc,您应该可以使用thrd_sleep()

#include <threads.h>
#include <time.h>
#include <stdio.h>

int main(void)
{
    printf("Time: %s", ctime(&(time_t){time(NULL)}));
    thrd_sleep(&(struct timespec){.tv_sec=1}, NULL); // sleep 1 sec
    printf("Time: %s", ctime(&(time_t){time(NULL)}));
}