关闭

linux----进度条小代码

175人阅读 评论(0) 收藏 举报
分类:

在写进度条代码之前,需要了解缓冲区和回车换行的概念:
回车换行
缓冲区

Sleep函数:

功 能: 执行挂起一段时间  
用 法: unsigned sleep(unsigned seconds);  
注意:    
    在VC中使用带上头文件#include < windows.h>,在Linux下,gcc编译器中,使用的头文件因gcc版
本的不同而不同#include < unistd.h> 
    在VC中,Sleep中的第一个英文字符为大写的"S" ,在linux下不要大写,在标准C中是sleep, 不要
大写,简单的说VC用Sleep, 别的一律使用sleep
    在VC中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是
Sleep(1000); 在Linux下,sleep()里面的单位是秒,而不是毫秒。

usleep函数:

功能: usleep功能把进程挂起一段时间, 单位是微秒us(百万分之一秒)。
语法: void usleep(int micro_seconds);
返回值: 无
注意:这个函数不能工作在 Windows 操作系统中。
usleep() 与sleep()类似,用于延迟挂起进程。进程被挂起放到reday queue。只是一般情况下,延迟
时间数量级是秒的时候,尽可能使用sleep()函数。且此函数已被废除,可使用nanosleep。 
如果延迟时间为几十毫秒,或者更小,尽可能使用usleep()函数。这样才能最佳的利用CPU时间。

delay函数: 

功 能: 将程序的执行暂停一段时间,单位是毫秒ms(千分之一秒)  
用 法: void delay(unsigned milliseconds)
delay()是循环等待,该进程还在运行,占用处理器。

sleep()不同,它会被挂起,把处理器让给其他的进程。

一个简单进度条代码(vs和gcc)

这里写图片描述


#include<string.h>
#include<windows.h> //gcc下可以不加这个头文件
#include<stdio.h>
void fun()
{
    // printf("hello bit\n");
    char a[101];
    int count = 1;
    memset(a, ‘\0’,sizeof (a));
    char *c = "|/-\";
    int i = 0;
while(count <= 100)
{
    i = 0;
    while(i<4)
    {
        a[count-1] = ‘#’;
        printf( "[%-100s] [%d%%] [%c] \r",a,count++,c[i++]);
        fflush(stdout); //使得缓冲区立即输出
        Sleep(100); //gcc这个sleep函数单位是秒,我用usleep(10000)单位微秒
    }
    }
}
int main()
{
    fun();
    return 0;

}
0
0
查看评论

linux----进度条程序

自己编写的第一个linux程序---进度条。这个程序要实现的是像进度条一样,每秒都会出现一个*,直到百分之百。并且在后面也会用百分数表示当前进度,而且有一根直线一直在转,表示当前进度正在运行。如下图:650) this.width=650;" src="http://s2.51c...
  • qq_25253287
  • qq_25253287
  • 2016-06-06 10:29
  • 121

c++的小代码

#include int main() {  int a,n,sum=0,tn=0;  cout  cin>>a>>n;  for(int i=1;i  {   tn=tn+a; ...
  • lianbitahai
  • lianbitahai
  • 2013-10-19 21:40
  • 317

js经典小代码

直接上代码:function duibi(a, b) {//"yyy-mmm-ddd"形式的时间对比 var arr = a.split("-"); var starttime = new Date(arr[0], arr[1], arr[2]...
  • helloworlddm
  • helloworlddm
  • 2017-09-01 15:49
  • 212

linux----缓冲区

一:缓冲区: 针对的是输入输出数据。其又称缓存,是内存空间的一部分存储空间,这些存储空间是用来缓冲输入输出 数据的。Buffer和Cache: buffer和cache是两个不同的概念:cache是高速缓存,用于CPU和内存之间的缓冲;buffer是I/O缓存, 用于内存和硬盘的缓冲;简单的...
  • uagvdu
  • uagvdu
  • 2017-01-03 16:48
  • 194

五十道编程小题目 --- 48 java

【程序48】  题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字 都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。  import java.util.HashMap; publi...
  • wangnanwlw
  • wangnanwlw
  • 2016-09-12 16:46
  • 618

Linux----操作系统

操作系统:是一个能够协调、控制计算机系统硬件和软件资源的控制程序。位于计算机硬件和应用程序之间,核心程序处于中心,提供最基本的计算功能 实现了用户与计算机之间的交互 区别:  Windows---依赖图形化界面       ...
  • qq407903501
  • qq407903501
  • 2011-12-05 21:54
  • 99

linux----回车换行

一:回车换行符号 ASCLL码 意义 \r 13 回车CR \n 10 换行NL 在ascii中,回车和换行是不同的字符。0x0A是回车...
  • uagvdu
  • uagvdu
  • 2017-01-03 17:11
  • 5338

linux----进程切换

进程切换 一、进程调度 1、调度时机 1)自愿的调度随时可以进行 ##内核空间:一个进程可以通过schedule()启动一次调度/在调用该函数之前,将本进程的状态设置为TASK_INTERRUPIBLE 或 TASK_UNINTERRUPTIBLE,暂时放弃运行进入睡眠;为自愿的暂时放弃运行加上时间...
  • chenx_IU
  • chenx_IU
  • 2017-07-11 16:44
  • 190

linux----进程同步

进程同步主要目的是对多个进程的执行次序进行协调,使各个进程能有效的访问共享资源和相互合作。 进程之间有两种相互制约关系:间接制约关系和直接制约关系。 间接制约关系:当A进程提出打印请求时,系统将唯一的一台打印机资源分配给了B进程,则A进程只能阻塞,直到B进程释放了打印机资源。 直接制约关系:一...
  • Zero_000
  • Zero_000
  • 2016-10-17 15:22
  • 138

linux----进程间通信

IPC方法 Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机...
  • u010019479
  • u010019479
  • 2017-11-25 19:16
  • 34
    个人资料
    • 访问:44205次
    • 积分:1124
    • 等级:
    • 排名:千里之外
    • 原创:69篇
    • 转载:16篇
    • 译文:0篇
    • 评论:0条