前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【C/C++】Sleep()函数详解

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

作者头像
修修修也
发布2024-09-05 10:35:34
2350
发布2024-09-05 10:35:34
举报
文章被收录于专栏:修也的进阶日记

📌Windows系统下Sleep()函数简介

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

🎏函数功能

可以看到,Sleep()函数的功能是:使计算机程序(进程, 任务或线程)进入休眠,使其在一段时间内处于非活动状态。

🎏函数参数

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

代码语言:javascript
复制
void Sleep(DWORD milliseconds);
🕹️DWORD milliseconds

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

🎏函数返回值

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

🎏函数头文件

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


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

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

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

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

代码语言:javascript
复制
#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个参数,如下:

代码语言:javascript
复制
unsigned int sleep(unsigned int seconds);
🕹️unsigned int seconds

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

🎏函数返回值

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

🎏函数头文件

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


🎏sleep()函数的具体使用

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

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

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

代码语言:javascript
复制
#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()函数的博客能对大家有所帮助,欢迎大佬们留言或私信与我交流.

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 📌Windows系统下Sleep()函数简介
    • 🎏函数功能
      • 🎏函数参数
        • 🕹️DWORD milliseconds
      • 🎏函数返回值
        • 🎏函数头文件
          • 🎏Sleep()函数的具体使用示例
          • 📌Linux系统下sleep()函数简介
            • 🎏函数功能
              • 🎏函数参数
                • 🕹️unsigned int seconds
              • 🎏函数返回值
                • 🎏函数头文件
                  • 🎏sleep()函数的具体使用
                  • 结语
                  相关产品与服务
                  云开发 CloudBase
                  云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档