<最后将介绍sleep()函数>
一、源代码
#include<stdio.h>
#include<unistd.h>void proc()
{
int rate=0;//进度率 表示进度走的百分比
char bar[102]={0};//初始化进度条大小 0-100应给101个 我们把最后一个设为空
const char *sta="-\\|/";看进度条是否卡顿还是在工作
while(rate<=100)
{
printf("[%-100s],%d%%,[%c]\r",bar,rate,sta[rate%4]);
usleep(10000);//sleep()的休眠时间为秒 usleep()休眠时间为微秒
bar[rate]='*';
rate++;
bar[rate]='\0';
}
}
int main()
{
proc();
return 0;
}
二、Linux平台下的具体操作
编译及运行结果
三、关于sleep()函数
函数名: sleep、usleep
功 能: 执行挂起一段时间
头文件: #include <unistd.h>
区 别: unsigned int sleep (unsigned int seconds);//n秒
int usleep (useconds_t usec);//n微秒
中文名
Linux sleep函数
外文名
Linux sleep function
功能
执行挂起一段时间
区别
unsigned int sleep
#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;
}
Linux下的sleep函数原型为: unsigned int sleep(unsigned int seconds);
而MFC中的Sleep函数原型为:void Sleep(DWORD dwMilliseconds);
也就是说,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)。