在Linux下写一个简单的进度条,用make指令进行编译。

Posted mujinhuakai01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Linux下写一个简单的进度条,用make指令进行编译。相关的知识,希望对你有一定的参考价值。

首先建立一个新的文件,touch progress_bar.c 执行该vim progress_bar.c命令,写进度条的程序。写进一个进度条程序:

#include<stdio.h>
#include<unistd.h>
#include<string.h>

void progress()
{
    int i = 0;
    char bar[102];
    memset(bar,0,102*sizeof(char));
    const char* lable="|/-\\\\";
    while(i <= 100)
    {
        bar[i] = '#';    
        printf("[%-101s] [%d%%] [%c]",bar,i,lable[i%4]);
        fflush(stdout);
        usleep(100000);
        i++;
    }
    printf("\\n");
}

int main()
{
    progress();
    return 0;
}

如图:
这里写图片描述

该代码中需要注意的小细节:
1. const char* lable=”|/-\\\\”; 直接输入一个\\会被系统认为是转义,所以要输入\\\\
2. printf(“[%-101s] [%d%%] [%c]”,bar,i,lable[i%4]);这里的%%同上,防止转义。i%4防止溢出
3. fflush(stdout); 参数为标准输出流
4. 因为sleep默认单位为秒,不便于测试,usleep默认单位为微秒
最后,进行调试,建立一个mymakefile文件,touch mymakefile对该文件进行编辑vim mymakefile。

myprogress_bar:progress_bar.c
    g++ -o myprogress_bar progress_bar.c
:PHONY clean
    clean:
    rm -f myprogress_bar

如图所示:

然后执行make命令,对progress_bar.c文件进行编译,make -f mymakefile,即生成myprogress_bar文件,用./myprogress_bar对他进行执行。若想重新进行编译,则需要make -f mymakefile clean指令,先对文件progress_bar进行清除,再用make进行编译。
如图:
这里写图片描述

以上是关于在Linux下写一个简单的进度条,用make指令进行编译。的主要内容,如果未能解决你的问题,请参考以下文章

linux环境下使用make实现进度条

linux下进度条的简单实现

linux——学习篇之makefile的简单应用及实现简单的进度条

Linux环境使用make与Makefile实现进度条

Linux篇第四篇——Linux环境下的工具(make/Makefile+进度条小程序)

Linux工具:软件包管理器yum | 编辑器vim | 编译器gcc/g++ | 调试器gdb | 自动化构建工具make/Makefile | Linux小程序:进度条 | git命令行