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)
文章参考:百度百科