在Linux下使用makefile寫一個進度條,以及對\r 和\n,緩衝區的簡單瞭解
阿新 • • 發佈:2018-12-13
1.’\r’和‘\n’的區別
-
\r:表示回車:它只會回到這一行的最前邊
-
\n:表示回車換行。它會回到這一行的最前邊,然後跳到下一行 。
2.緩衝區
-
c函式如printf(),在輸出時,shell預設將資料輸出到標準輸出如顯示器,而printf()在輸出時並不是將資訊直接列印到螢幕上,而是先將資訊資訊放在緩衝區中,該緩衝區是按行重新整理。
-
強制重新整理fflush()函式。
3.如何定義makefile
-
第一行:依賴關係
-
第二行:依賴方法,必須以Tab鍵開頭(-o 表示輸出到<檔案>裡去)
-
被 .PHONY: 修飾,表示偽目標。他總是被執行的。
進度條
1.makefile檔案
2.proc.c的原始碼檔案
#include<stdio.h> #include<unistd.h> int main() { char bar[102]={'\0'};//建立一個數組並初始化為0 int i=0; const char *lable={"|/-\\"};//定義一個字元陣列,裡面按順時針方向放旋轉的字元 while(i<=100) { bar[i]='#'; printf("[%-100s][%d%%][%c]\r",bar,i,lable[i%4]);//輸出數組裡的內容 ,以及百分比,和旋轉進度條 fflush(stdout);//強制重新整理 i++; usleep(50000);//睡眠0.5秒 } printf("\n"); return 0; }
3.結果展示