這只是一個小筆記,並沒有太大的用意。當我們在Linux下用TFTP或是FTP這一些套件時,在上下傳檔案,我們會看到軟體在執行時,會在同一行一直跑目前的進度傳送了多少Bytes;我心裡就在想這是怎麼做的?趕緊Google一下,把結果給記下來。觀念很簡單,要善用
跳脫字元'\r' (Carriage Return,回車),讓該行的游標
回到行首重新輸出就行了。然後再搭配usleep()函式,每一次的輸出要停多少毫秒。範例如下:
#include <stdio.h>
#include <unistd.h>
int main(void)
{
int i = 0;
for (i = 0; i < 3145728; i++) {
printf("\rReceived %d bytes .... ", i);
fflush(stdout);
usleep(10000);
}
printf("\n");
return 0;
}
沒有留言:
張貼留言