Linux的sleep函数和MFC中的Sleep函数

本文探讨了Linux和MFC环境下sleep函数的区别。Linux的sleep函数来自unistd.h头文件,以秒为单位,而MFC的Sleep函数来自Windows.h,以毫秒为单位。此外,还介绍了Linux下的usleep和delay函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux的sleep函数

函数名:sleep,usleep
功能:执行挂起一段时间
头文件:#include <unistd.h>
区别:
unsigned int sleep(unsigned int secconds); //n秒 int usleep(useconds_t usec); //n微妙
例如测试程序:

#include <stdio.h>
#include <unistd.h>
int main(){
	int sec = 0,usec = 0;
	while(1){
		printf("sec = %d \n",++sec);
		sleep(1);
		printf("usec = %d \n",++usec);
		usleep(1000000);
	}
	return 0;
}

MFC的Sleep函数

Sleep函数开头是大写的,注意这个区别,其函数原型为:
void Sleep(DWORD dwMilliseconds);
在VC中使用带上头文件:#include <windows.h>
(Sleep函数存放头文件:WinBase.h)

示例测试程序:

#include <windows.h>
#include<stdio.h>
int main(){
	int a;
	a=1000;
	printf("你");
	Sleep(a);/* VC 使用Sleep*/
	printf("好"); /*输出“你”和“好”之间会间隔一千毫秒,即间隔一秒,Sleep()的单位为毫秒*/
	return 0;
}

或者明显一点:

#include <windows.h> //win头文件
#include<stdio.h>
int main()
{
    int i;
    printf("你");
    fflush(stdout); //强制刷新缓存,输出显示
    for( i=0;i<10;i++ )
    {
        Sleep(1000);    /* windows 使用Sleep,参数为毫秒 */
        printf(".");
        fflush(stdout);//强制刷新缓存,输出显示
    }
    printf("好\n");  /*输出“你”和“好”之间会间隔10秒,并输出10个点*/
    return 0;
}

区别

Linux下(使用的gcc的库),sleep()函数是以秒为单位的,sleep(1);就是休眠1秒。而MFC下的Sleep()函数是以毫秒为单位的,sleep(1000);才是休眠1秒。而如果在Linux下也用微妙为单位休眠,可以使用线程休眠函数:void usleep(unsigned long usec)。

Linux下还有个delay()函数,原型为extern void delay(unsigned int msec);它可以延时msec*4毫秒,也就是如果想延时一秒钟的话,可以这么用 delay(250)

文章参考:百度百科

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值