未末未未未未末 發表於 2023-11-17 00:00:00

Linux用make指令编译进度条程序

<p>
        本文实例为大家分享了Linux下写一个简单进度条的具体代码,供大家参考,具体内容如下</p>
<p>
        首先建立一个新的文件,touch progress_bar.c 执行该vim progress_bar.c命令,写进度条的程序。写进一个进度条程序:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightercpp" id="highlighter_416566">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                        <div class="line number12 index11 alt1">
                                                                12</div>
                                                        <div class="line number13 index12 alt2">
                                                                13</div>
                                                        <div class="line number14 index13 alt1">
                                                                14</div>
                                                        <div class="line number15 index14 alt2">
                                                                15</div>
                                                        <div class="line number16 index15 alt1">
                                                                16</div>
                                                        <div class="line number17 index16 alt2">
                                                                17</div>
                                                        <div class="line number18 index17 alt1">
                                                                18</div>
                                                        <div class="line number19 index18 alt2">
                                                                19</div>
                                                        <div class="line number20 index19 alt1">
                                                                20</div>
                                                        <div class="line number21 index20 alt2">
                                                                21</div>
                                                        <div class="line number22 index21 alt1">
                                                                22</div>
                                                        <div class="line number23 index22 alt2">
                                                                23</div>
                                                        <div class="line number24 index23 alt1">
                                                                24</div>
                                                        <div class="line number25 index24 alt2">
                                                                25</div>
                                                        <div class="line number26 index25 alt1">
                                                                26</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="cpp preprocessor">#include&lt;stdio.h&gt;</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="cpp preprocessor">#include&lt;unistd.h&gt;</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="cpp preprocessor">#include&lt;string.h&gt;</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                         </div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="cpp keyword bold">void</code> <code class="cpp plain">progress()</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="cpp plain">{</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="cpp spaces"> </code><code class="cpp color1 bold">int</code> <code class="cpp plain">i = 0;</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="cpp spaces"> </code><code class="cpp color1 bold">char</code> <code class="cpp plain">bar;</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="cpp spaces"> </code><code class="cpp functions bold">memset</code><code class="cpp plain">(bar,0,102*</code><code class="cpp keyword bold">sizeof</code><code class="cpp plain">(</code><code class="cpp color1 bold">char</code><code class="cpp plain">));</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="cpp spaces"> </code><code class="cpp keyword bold">const</code> <code class="cpp color1 bold">char</code><code class="cpp plain">* lable=</code><code class="cpp string">"|/-\\"</code><code class="cpp plain">;</code>
</div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="cpp spaces"> </code><code class="cpp keyword bold">while</code><code class="cpp plain">(i &lt;= 100)</code>
</div>
                                                                <div class="line number12 index11 alt1">
                                                                        <code class="cpp spaces"> </code><code class="cpp plain">{</code>
</div>
                                                                <div class="line number13 index12 alt2">
                                                                        <code class="cpp spaces">  </code><code class="cpp plain">bar = </code><code class="cpp string">'#'</code><code class="cpp plain">; </code>
</div>
                                                                <div class="line number14 index13 alt1">
                                                                        <code class="cpp spaces">  </code><code class="cpp functions bold">printf</code><code class="cpp plain">(</code><code class="cpp string">"[%-101s] [%d%%] [%c]"</code><code class="cpp plain">,bar,i,lable);</code>
</div>
                                                                <div class="line number15 index14 alt2">
                                                                        <code class="cpp spaces">  </code><code class="cpp functions bold">fflush</code><code class="cpp plain">(stdout);</code>
</div>
                                                                <div class="line number16 index15 alt1">
                                                                        <code class="cpp spaces">  </code><code class="cpp plain">usleep(100000);</code>
</div>
                                                                <div class="line number17 index16 alt2">
                                                                        <code class="cpp spaces">  </code><code class="cpp plain">i++;</code>
</div>
                                                                <div class="line number18 index17 alt1">
                                                                        <code class="cpp spaces"> </code><code class="cpp plain">}</code>
</div>
                                                                <div class="line number19 index18 alt2">
                                                                        <code class="cpp spaces"> </code><code class="cpp functions bold">printf</code><code class="cpp plain">(</code><code class="cpp string">"\n"</code><code class="cpp plain">);</code>
</div>
                                                                <div class="line number20 index19 alt1">
                                                                        <code class="cpp plain">}</code>
</div>
                                                                <div class="line number21 index20 alt2">
                                                                         </div>
                                                                <div class="line number22 index21 alt1">
                                                                        <code class="cpp color1 bold">int</code> <code class="cpp plain">main()</code>
</div>
                                                                <div class="line number23 index22 alt2">
                                                                        <code class="cpp plain">{</code>
</div>
                                                                <div class="line number24 index23 alt1">
                                                                        <code class="cpp spaces"> </code><code class="cpp plain">progress();</code>
</div>
                                                                <div class="line number25 index24 alt2">
                                                                        <code class="cpp spaces"> </code><code class="cpp keyword bold">return</code> <code class="cpp plain">0;</code>
</div>
                                                                <div class="line number26 index25 alt1">
                                                                        <code class="cpp plain">}</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        如图:</p>
<p>
        <img title="Linux用make指令编译进度条程序" alt="Linux用make指令编译进度条程序" src="https://zhuji.jb51.net/uploads/img/202305/d538ccf1c6c32a3325d8d031bbc55ef3.jpg"></p>
<p>
        该代码中需要注意的小细节:</p>
<p>
        1. const char* lable=”|/-\\”; 直接输入一个\会被系统认为是转义,所以要输入\\<br>
        2. printf(“[%-101s] [%d%%] [%c]”,bar,i,lable);这里的%%同上,防止转义。rate%4防止溢出<br>
        3. fflush(stdout); 参数为标准输出流<br>
        4. 因为sleep默认单位为秒,不便于测试,usleep默认单位为微秒</p>
<p>
        最后,进行调试,建立一个mymakefile文件,touch mymakefile对该文件进行编辑vim mymakefile。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_280282">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">myprogress_bar:progress_bar.c</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash plain">g++ -o myprogress_bar progress_bar.c</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">:PHONY clean</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash plain">clean:</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash functions">rm</code> <code class="bash plain">-f myprogress_bar</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        如图所示: </p>
<p>
        <img title="Linux用make指令编译进度条程序" alt="Linux用make指令编译进度条程序" src="https://zhuji.jb51.net/uploads/img/202305/f1005cb4ab657e7ea05a25a576f36b14.jpg"></p>
<p>
        然后执行make命令,对progress_bar.c文件进行编译,make -f mymakefile,即生成myprogress_bar文件,用./myprogress_bar对他进行执行。若想重新进行编译,则需要make -f mymakefile clean指令,先对文件progress_bar进行清除,再用make进行编译。</p>
<p>
        如图:</p>
<p>
        <img title="Linux用make指令编译进度条程序" alt="Linux用make指令编译进度条程序" src="https://zhuji.jb51.net/uploads/img/202305/80334c956cce2560f911b01141d39e03.jpg"></p>
<p>
        以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。</p>
頁: [1]
查看完整版本: Linux用make指令编译进度条程序