linux之缓冲区
行緩沖。在這種情況下,當(dāng)在輸入和輸出中遇到換行符時(shí),標(biāo)準(zhǔn)I/O庫執(zhí)行I/O操作。這允許我們一次輸出一個(gè)字符,但只有在寫了一行之后才進(jìn)行實(shí)際I/O操作。當(dāng)流涉及一個(gè)終端時(shí),通常使用行緩沖。
第一個(gè)例子:(hello world)
在這里,當(dāng)我們沒有在hello world后邊跟\n,此時(shí)結(jié)果中并沒有出現(xiàn)hello world;
而當(dāng)我們給它加上\n之后,
結(jié)果是這樣的:
這是為什么呢,這里就是因?yàn)榫彌_區(qū)的存在。當(dāng)我們在屏幕上打印出來之前會(huì)將內(nèi)容存放在行緩沖區(qū)里。只有識(shí)別到\n時(shí),才會(huì)輸出內(nèi)容。
第二個(gè)例子:(神奇的進(jìn)度條)
說起進(jìn)度條,大家都再熟悉不過了。比如像這樣的:
這樣的一個(gè)進(jìn)度條怎么用代碼實(shí)現(xiàn)呢?
簡單的分析一下,首先我們要輸出走過的進(jìn)度,以及剩余部分,同時(shí)還得顯示百分比。
代碼實(shí)現(xiàn)如下:
progress_bar是定義了一個(gè)102個(gè)空間,來存放每個(gè)進(jìn)度;
ch[]表示的是出現(xiàn)進(jìn)度時(shí)的緩沖效果;
‘#’代表了進(jìn)度;
fflush(stdout):為了刷新行緩沖區(qū)的內(nèi)容;
usleep(100000):睡眠時(shí)間,即控制進(jìn)度的快慢;
運(yùn)行結(jié)果如下:
今天的緩沖就先說到這里嘍~~
歡迎提出寶貴意見哦。
總結(jié)
- 上一篇: 服务器加根网线用不用修改路由器,安装设置
- 下一篇: 请问java 结果集list,根据use