1. 程式人生 > >在Linux下使用makefile寫一個進度條,以及對\r 和\n,緩衝區的簡單瞭解

在Linux下使用makefile寫一個進度條,以及對\r 和\n,緩衝區的簡單瞭解

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.結果展示