Linux下實現進度條和彩色進度條
一、普通進度條
#include <stdio.h> #include <unistd.h> int main() { char buf[101] = {}; int i =0; char *ptr = "|/-\\"; for(i = 0; i < 100 ; i++) { buf[i] = '#'; printf("[%-100s][%d%%][%c]\r", buf, i+1, ptr[i%4]); fflush(stdout); usleep(100000); } printf("\n"); return 0; }
二、炫彩進度條
通過轉義序列設定終端顯示屬性時,可採用以下格式:
\033[Param{;Param;...}m 或 \e[Param{;Param;...}m
其中,\033[或\e[為引導轉義序列,
Param為屬性項,{ }表示可選,多個選項間用分號間隔。
m表示設定屬性並結束轉義序列
常見的屬性項為(具體可根據:man console_codes命令查詢):
顯示序列: \033[0m 關閉轉義序列 \033[1m 粗體或高亮 \033[5m 閃爍 前景顏色序列: \033[30m 黑 \033[31m 紅 \033[32m 綠 \033[33m 黃 \033[34m 藍 \033[35m 洋紅 \033[36m 青 \033[37m 白 背景顏色序列: 與前景顏色對對應,前景色是30+,背景色是40+
為實現不同顏色的替換,將這些顏色序列定義為巨集,所以,整體程式碼如下:
#include<stdio.h> #include<unistd.h> #define END "\033[0m" #define BLACK "\033[30m" #define RED "\033[31m" #define GREEN "\033[32m" #define YELLOW "\033[33m" #define BULE "\033[34m" #define PORPLE "\033[35m" #define DGREEN "\033[36m" #define WHITE "\033[37m" int main() { char buf[102]="#"; int i=0; char str[]="|/-\\"; int c = 0; for(i=1;i<=100;i++) { buf[i]='#'; c = i%8; switch(c) { case 0: printf(BLACK); break; case 1: printf(RED); break; case 2: printf(GREEN); break; case 3: printf(YELLOW); break; case 4: printf(BULE); break; case 5: printf(PORPLE); break; case 6: printf(DGREEN); break; case 7: printf(WHITE); break; } printf("[%-100s][%d%%][%c]\r",buf,i,str[i%4]); printf(END); fflush(stdout); usleep(100000); } printf("\n"); return 0; }
下面是Makefile:
processbar:processbar.o
gcc $^ -o [email protected]
%o: %.c
gcc -c $^ -o [email protected]
all=processbar.i\
processbar.s\
processbar.o\
processbar
.PHONY: clean
clean:
rm -f $(all)
相關推薦
Linux下實現進度條和彩色進度條
一、普通進度條 #include <stdio.h> #include <unistd.h> int main() { char buf[101] = {}; int i =0; char *
Linux下實現epoll伺服器和缺點總結
這篇文章我們來介紹一下epoll實現多使用者伺服器端 先列出epoll的API: epoll和poll,select有些不同,通過三個函式來進行實現的: 就是這張圖片裡面的三個函式 (1)epoll_create(size)介紹是: (2)ep
linux下實現U盤和sd卡的自動掛載
目的:使U盤和SD卡在Linux系統中進行插入和拔除時能自動掛載和解除安裝,不需要手動mount和umount。 步驟: 1、在/etc/init.d/rcS中加入以下語句 echo /sbin/mdev > /proc/sys/kernel/hotplug 2、在/
Linux下實現彩色進度條程式
程式碼: #include <stdio.h> #include <unistd.h> #include <string.h> int main() { int i = 0; char bar[101]; const char *la
Linux下實現進度條程式. 通過makefile進行編譯. 建議自主完成一個彩色的進度條.
Linux下用C語言完成一個彩色進度條 1.建一個Makefile檔案 2.vim Makefile test:test.c
Linux下實現彩色進度條
#include <stdio.h>
除了vim, 還有哪些常用的牛逼的編輯器。 自行查詢資料, 調研除了gcc, 還有哪些常用的牛逼的編譯器,為什麼除錯的時候需要編譯選項中新增 -g在Linux下實現進度條程式
除了vim, 還有哪些常用的牛逼的編輯器, 並能夠橫向對比編輯器之間的區別和優缺點。 首先先有一個概念IDE(整合開發環境),厲害的有vs等等。vim以及Emacs就向著這個方向發展。為了實現其強大功能。vim有了多模式編輯有(normal,insert,vis
除了vim, 還有哪些常用的牛逼的編輯器,除了gcc, 還有哪些常用的牛逼的編譯器,為什麼除錯的時候需要編譯選項中新增 -g,調研readelf命令,Linux下實現進度條程式.
除了vim, 還有哪些常用的牛逼的編輯器 Brackets Brackets也是一款為Linux開發者設計的開原始碼編輯器,使用Brackets寫程式碼,你不會被任何事情所打斷。比如在寫HTML程式碼時,即便你沒有儲存程式碼也可以及時預覽你的Web頁面效果。你也可以使用T
在Linux下實現簡易進度條
本文將要概述 printf的緩衝區問題; \r和\n的區別; 如何實現一個簡易的進度條; 奇怪的現象 進度條是安裝和下載軟體中常見的部分,它可以表示軟體安裝或下載了多大,能給客戶一種直觀的感受,今天我們就來實現一個簡易的進度條,基本構思是這樣的,我們定
Linux C實現檔案拷貝可變色進度條顯示
printf的格式化輸出中,可以設定前景色和背景色,因此進度條的顏色可以通過printf的格式化輸出來實現;此外,進度條的實現主要依靠"\r"和"fflush(stdout)“來支援。”\r" 用來回到行首而不換行,fflush(stdout)是重新整理螢幕輸出
CSS實現進度條和訂單進度條
最近半個月為了期末考試,可要了學渣我半瓶血啊!今天本該好好複習的,可是狀態不好,就隨便找點樂子玩一玩,於是乎就想起之前面試時面試官給的一道題(見標題),那就弄點簡單的小玩意給自己洗洗腦咯。 簡單地效果圖如下: CSS實現進度條: html結構: <div id="progress"&
Linux下實現客戶端兩連跳ping百度,修改dns和nmcil的用法
1.客戶端跳兩次路由器ping百度 rht vmctl reset 重置虛擬機器 真機和虛擬機器開啟火牆策略 用在配置網路單元學的修改兩機閘道器 設定server為雙網絡卡路由端接觸客戶端Desktop閘道器為1.1.1.100 路由器端設定GATEWAY為真機,記得syste
linux下用互斥鎖和條件變數來實現讀寫鎖
以下內容來源自UNP卷二的第八章 讀寫鎖的概念( the conception of read-write lock ) (1)只要沒有執行緒持有某個給定的讀寫鎖用於寫,那麼任意數目的執行緒可以持有該執行緒用於讀 (2)僅當沒有執行緒持有某個給定的讀寫鎖用於讀或用於寫,才能分配該
android自定義的弧形進度條和圓形進度條-SemicircleProgress
SemicircleProgress 兩個自定義圓形和弧形進度條 第一個SemicircleProgress可以對中間和下面的字自定義 第二個CircularProgressar可
linux下raid學習心得和raid0的實現
常見的硬碟:SATA一般pc機主流的硬碟。SCSI一般伺服器應用廣泛。IDE比較老,二者均可。 RAID 的意思是廉價磁碟冗餘陣。是一些列放在一起,成為一個邏輯卷的磁碟集合。 軟體RAID和硬體RAID 軟體RAID的效能低,使用主機資源,載入RAID軟體,從軟體RAID卷
linux 下利用ls grep 和正則表示式實現目錄和檔案的分開顯示
要列出當前目錄下所有的檔名和目錄名直接使用ls命令即可。但如何只列出檔名而不列出目錄呢?查遍了ls 的幫助,也沒看到有這個現成的選項。幸好這個問題還是比較常見的,網上已經有了一些解答,但實驗之後,我發現看到的幾個連結給出的解決方法都是不完全正確的。具體如下。一、網上流傳的解
Linux下實現視訊讀取(三)---Buffer的準備和資料讀取
前面主要介紹的是:V4L2 的一些設定介面,如亮度,飽和度,曝光時間,幀數,增益,白平衡等。今天看看V4L2 得到資料的幾個關鍵ioctl,Buffer的申請和資料的抓取。 1. 初始化 Memory Mapping 或 User Pointer I/O. int ioct
linux下jdk的安裝和配置
rac -s watermark img 使用 etc 文件拷貝 安裝 com 一、首先依據自己的系統位數在網上下載對應的jdk安裝包 下載地址例如以下:http://www.oracle.com/technetwork/java/javase/downloads/jd
奪命雷公狗---linux NO:27 linux下的密碼管理和用戶切換以及sudo的使用
意思 發現 which window 明顯 能開 操作 賬戶 修改 我們在windows下用戶名是可以設置空密碼登錄的,但是在linux 裏面必須要設置一個密碼才可以登錄,否則會失敗的。。。 在linux 下設置密碼可以使用 passwd 這個命令來進行設置。。。 但是
Linux下MySQL的備份和恢復
mysql備份 再也不用擔心數據丟失了 MySQL備份的原因 1. 災難恢復 2. 審計 3. 測試1234512345mysql的備份類型 1. 根據服務器的在線狀態: 熱備:服務器處於運行狀態 冷備:服務器出去停止狀態 溫備:服務器處於半離線狀態,只能讀,但是不能