【C/C++】Sleep()函数详解

举报
修修修也 发表于 2024/10/25 15:41:43 2024/10/25
【摘要】 🦄个人主页:修修修也 🎏所属专栏:C++ ⚙️操作环境:Visual Studio 2022 / Xshell (操作系统:CentOS 7.9 64位)​编辑目录📌 Windows系 统 下 Sleep()函数 简 介 🎏 函数功能 🎏 函数参数 🕹️ DWORD milliseconds 🎏 函数返回 值 🎏 函数 头 文件 🎏 Sleep()函数的具体使用示例 📌 ...

🦄个人主:修修修也

🎏所属专栏:C++

⚙️操作:Visual Studio 2022 / Xshell (操作系:CentOS 7.9 64位)

​编辑


📌 Windows系 Sleep()函数

🎏 函数功能

🎏 函数参数

🕹️ DWORD milliseconds

🎏 函数返回

🎏 函数 文件

🎏 Sleep()函数的具体使用示例

📌 Linux系 sleep()函数

🎏 函数功能

🎏 函数参数

🕹️ unsigned int seconds

🎏 函数返回

🎏 函数 文件

🎏 sleep()函数的具体使用

结语


📌Windows系Sleep()函数

        我们先来看一下百度百科网站上Sleep()函数的基本信息:

​编辑

🎏函数功能

        可以看到,Sleep()函数的功能是:使算机程序(, 任线)入休,使其在一段时间于非活

🎏函数参数

        该函数一共有1个参数,如下:

void Sleep(DWORD milliseconds);

🕹️DWORD milliseconds

        函数参数的类型是DWORD(实质unsigned long, 即无符号整型), 它的作用是接受一个以毫秒为单的参数,表示程序停的时间

🎏函数返回

        函数的返回值类型是void, 它表示此函数没有返回。调用后,程序将暂停指定的时间。

🎏函数文件

        该函数包含在头文件<windows.h>中。


🎏Sleep()函数的具体使用示例

        Sleep()函数的使用场景是:当我们想在程序运行程中将程序休眠一段时间时,我们可以使用Sleep()函数来实现这一诉求.

        如下,我们使用Sleep()函数完成一个简单计时小程序:

        给Sleep()函数传入:1000(1000ms,即要暂停1s时间)

#include<stdio.h>

#include<windows.h>




void countdown(int n)//设定参数,接收一个整数,作为倒计时的秒数

{

    while (n >= 0)

    {

        printf("%-2d\r", n);

        fflush(stdout); //使用回车打印后休眠,要手动清空字符缓冲区

        Sleep(1000);//我们想要Sleep()函数休眠1秒,转换成参数毫秒就是1000ms

        n--;

    }

    printf("\n");

}




int main()

{

    countdown(10);//调用倒计时小程序函数,并传入倒计时秒数:10s




    return 0;

}

        在vs2022编译器中运行查看结果:

​编辑

        可见Sleep()函数成功的将每次打印的秒数间间隔了1s


📌Linux系sleep()函数

        我们先来看一下Linux手册上的sleep()函数的基本信息:

​编辑

🎏函数功能

        可以看到,sleep()函数的功能是:使算机程序(, 任线)入休眠,使其在一段时间于非活

🎏函数参数

        该函数一共有1个参数,如下:

unsigned int sleep(unsigned int seconds);

🕹️unsigned int seconds

        函数参数的类型是unsigned int(即无符号整型), 它的作用是接受一个以秒为单的参数,表示程序停的时间

🎏函数返回

        函数的返回值类型是unsigned int, 它表示在指定时间内未能睡眠的秒数(例如,因信号中断)。如果返回值为0,则表示指定的时间已完全睡眠。

🎏函数文件

        该函数包含在头文件<unistd.h>中。


🎏sleep()函数的具体使用

        sleep()函数的使用场景是:当我们想在程序运行程中将程序停一段时间时,我们可以使用sleep()函数来实现这一诉求.

        如下,我们使用sleep()函数完成一个简单的倒计时小程序:

        给sleep()函数传入:1(1s,即要暂停1s时间)

#include<stdio.h>

#include<unistd.h>




void countdown(int n)//设定参数,接收一个整数,作为倒计时的秒数

{

    while (n >= 0)

    {

        printf("%-2d\r", n);

        fflush(stdout); //使用回车打印后休眠,要手动清空字符缓冲区

        sleep(1);//参数是秒,所以我们直接传1

        n--;

    }

    printf("\n");

}




int main()

{

    countdown(10);//调用倒计时小程序函数,并传入倒计时秒数:10s




    return 0;

}

        在Xshell (操作系统:CentOS 7.9 64位)中运行查看结果:

​编辑

        可见sleep()函数成功的将每次打印的秒数中间间隔了1s

        小tips:

• 在Linux的sleep()函数中,如果在休眠期有信号到达函数可能会提前返回,实际睡眠时间少于所求的时间

• 在Windows中,Sleep()通常不会被信号中断,适合需要精确睡眠的景。


结语

希望篇关于Sleep()函数的博客能大家有所帮助,迎大佬留言或私信与我交流.

学海漫浩浩,我亦苦作舟!关注我,大家一起学,一起!

相关文章推荐

【Linux】手把手教你从零上手gcc/g++ 编译

【Linux】手把手教你从零上手Vim 编辑

【Linux】一文 底搞懂

【Linux】基本指令(下)

【Linux】基本指令(中)

【Linux】基本指令(上)


​编辑

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。