亚洲国产第一_开心网五月色综合亚洲_日本一级特黄特色大片免费观看_久久久久久久久久免观看

Hello! 歡迎來到小浪云!


Linux探秘坊——-4.進度條小程序


avatar
小浪云 2025-04-19 34

1.緩沖區代碼語言:JavaScript代碼運行次數:0運行復制

#include <stdio.h>int main(){ printf("hello bite!"); sleep(2); return 0;}</stdio.h>

執行此代碼后,會 先停頓兩秒,再打印出hello bite,但是明明打印在sleep前面,為什么會后打印呢?

因為:

printf執行完了后,打印的內容被存到了緩沖區程序快結束時緩存區的內容再打印到顯示器

奇妙的事情發生了:

代碼語言:javascript代碼運行次數:0運行復制

#include <stdio.h>int main(){ printf("hello bite! "); sleep(3); return 0;}</stdio.h>

如果我們使用這樣的代碼,會 先打印出hello bite,再停頓兩秒,為啥捏?

可以發現和上面的代碼對比多了一個/n

顯示器有一種刷新策略,叫 行刷新而 /n正好代表著換行,所以加了/n的內容會 直接從緩存區打印到顯示器上,不用等程序結束

那么我們有沒有辦法 不用 也能先打印呢? 包有的:

代碼語言:javascript代碼運行次數:0運行復制

#include <stdio.h>int main(){ printf("hello bite!"); fflush(stdout); sleep(3); return 0;}</stdio.h>

這里的fflush(stdout)就起到了 刷新的作用2.進度條(V1)1.process.h

Linux探秘坊——-4.進度條小程序

2.main.c

Linux探秘坊——-4.進度條小程序

3.process.c(重點)

Linux探秘坊——-4.進度條小程序

代碼語言:javascript代碼運行次數:0運行復制

#include"process.h"    2 #include<string.h>    3 #include<unistd.h>    4     5 #define size 101//需要考慮