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<stdio.h></code>
</div>
<div class="line number2 index1 alt1">
<code class="cpp preprocessor">#include<unistd.h></code>
</div>
<div class="line number3 index2 alt2">
<code class="cpp preprocessor">#include<string.h></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 <= 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]