菜鸟笔记
提升您的技术认知

Linux下的延迟函数sleep()

Linux下c语言中的延迟函数sleep()的用法

#include <stdio.h>

int main()
{
    printf("hello\n");

        sleep(1);  //延迟1秒

    printf("world\n");

    return 0;
}

windows下 sleep(1000) 代表延迟1秒,因为sleep的参数为毫秒,
而在Linux下 sleep的参数为秒,所以延迟1秒为 sleep(1)。

#include <stdio.h>

int main()
{
    printf("hello"); /*去掉转义字符'\n'*/

        sleep(1);

    printf("world\n");

    return 0;
}


1秒后

当我们去掉转义字符‘\n’,不再执行任何转义操作后,延迟函数sleep不再在语句间延迟,而是变成延迟整个程序。
借此我们来认识一下printf函数:
 printf是一个行缓冲函数,先写到缓冲区,满足条件后,才将缓冲区刷到对应文件中,刷缓冲区的条件如下:
1 缓冲区填满。
2 写入的字符中有‘\n’ , ‘\r’。
3 调用fflush手动刷新缓冲区。
4 调用scanf要从缓冲区中读取数据时,也会将缓冲区内的数据刷新。

这里我们通过fflush()函数刷新缓存

include <stdio.h>

int main()
{
    printf("hello");
    fflush(stdout);   //强制刷新缓存,输出显示

        sleep(1);

    printf("world\n");

    return 0;
}


1秒后