Linux实现进度条小程序
来源:互联网 发布:mac共享windows文件夹 编辑:程序博客网 时间:2024/05/16 12:05
进度条:
进度条即计算机在处理任务时,实时的,以图片形式显示处理任务的速度,完成度等剩余未完成任务量的大小,和可能需要处理时间,一般以长方形条状显示。日常生活中,下载,复制等等操作,我们都会见到进度条的身影。
所以今天在cent os环境下的Linux实现一个简单的进度条。
那么工欲善其事必先利其器,我们先来了解一下几点基础知识。
1. 我们想做一个怎么样的进度条?
我们做的进度条是一个方括号不动 方括号里逐渐填充#的一个进度条
那么 我们就需要固定一个长度 向其中添加东西
我们就需要用到 printf(“[-100s%]”,buf);这里的100是规定长度但是100是从右向左输出 所以我们用到-100
2. 进度条怎么处理进度增加?
这里 我们需要知道回车和换行的知识 回车和换行是不一样的
回车指的是回到一行的首部
换行指的是换到下一行
那么我们如果需要让进度条逐渐增加 我们就仅仅只需要回车这一个功能
在C语言里回车是 /r
3. 进度条如何缓慢显示?
毫无疑问 这里需要用(秒为单位)sleep/usleep(微秒为单位)函数
但是 当我们先打印再用usleep时 我们发现它并没有先打印 而是隔了一段时间后全部显示
所以 我们还需要了解缓冲区
缓冲区分为无缓冲、行缓冲、全缓冲。
无缓冲:表示的是没有缓冲,可以将信息立马显现出来,典型代表是标准错误流stderr。
行缓冲:表示的是输入输出遇到换行才执行真正的I/O操作。典型的代表是键盘的操作。
全缓冲:表示的是输入输出写满缓冲区才执行I/O操作。典型的代表是磁盘的读写。
根据冯诺依曼思想 cpu处理完放到内存中 内存之后才会输出到输出设备上 所以我们需要刷新stdout
printf是一个行缓冲函数,先写到缓冲区,满足条件后,才将缓冲区刷到对应文件中,
刷缓冲区的条件如下:
满足上面4个条件之一缓冲区就会刷新(1)缓冲区填满;
(2)写入的字符中有‘\n’;
(3)调用fflush手动刷新缓冲区;
(4)调用scanf要从缓冲区中读取数据时,也会将缓冲区内的数据刷新;
所以我们应该用fflush函数刷新缓冲区以便让他立马显示到屏幕上
那么 我们解决完这些问题 我们就开工 开始写一个简单的进度条小程序
那么剩下的不赘述
建loading.c 和 Makefile文件
loading.c:
Makefile :
之后我们运行并查看结果
- Linux实现进度条小程序
- Linux下实现进度条小程序
- linux下实现进度条小程序
- 【Linux】彩色进度条的实现,Linux小程序
- Linux之小程序进度条
- Linux下进度条小程序
- Linux入门:进度条小程序
- Linux简单小程序---进度条
- Linux下的进度条小程序
- linux 第一个小程序 进度条
- Linux下编写进度条小程序
- Linux下的小程序:进度条
- Linux下的进度条小程序
- linux下用程序实现进度条
- 【Linux】用c++实现进度条程序
- 在Linux中实现一个进度条程序
- 在Linux下实现进度条程序
- 进度条小程序
- 利用FFMPEG进行视频分割
- php读取mysql分页查询
- 用《内网穿山甲》共享内网中的远程桌面服务
- php插入mysql数据返回id
- 文件上传一
- Linux实现进度条小程序
- Java简介
- 8086汇编7:跳转指令
- Docker 节点在 ODL 控制下的 OVS 网桥连接
- tomcat——简单的Web服务器和Servlet容器
- 数学基础 -- 基础定义(集合、实数集、映射、函数)
- CQOI2014 排序机械臂--splay膜版题
- php查询mysql分页查询返回数组
- 欢迎使用CSDN-markdown编辑器