C/C++fflush(stdout)循环打印输出避免缓存区错误
生活随笔
收集整理的這篇文章主要介紹了
C/C++fflush(stdout)循环打印输出避免缓存区错误
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在使用多個(gè)輸出函數(shù)連續(xù)進(jìn)行多次輸出時(shí),有可能發(fā)現(xiàn)輸出錯(cuò)誤。因?yàn)橄乱粋€(gè)數(shù)據(jù)再上一個(gè)數(shù)據(jù)還沒(méi)輸出完畢,還在輸出緩沖區(qū)中時(shí),下一個(gè)printf就把另一個(gè)數(shù)據(jù)加入輸出緩沖區(qū),結(jié)果沖掉了原來(lái)的數(shù)據(jù),出現(xiàn)輸出錯(cuò)誤。 在 printf();后加上fflush(stdout); 強(qiáng)制馬上輸出,避免錯(cuò)誤。
實(shí)例
//線程函數(shù)(1秒輸出現(xiàn)記錄的信息) static void *stats_thread(void *arg) {uint32_t seconds = 0;while (TRUE){ #ifndef DEBUGprintf("%d, %d\n", get_ip_num(), get_ip_login()); #endiffflush(stdout);sleep(1);} }?
總結(jié)
以上是生活随笔為你收集整理的C/C++fflush(stdout)循环打印输出避免缓存区错误的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python爬虫中文乱码问题(爬虫乱码)
- 下一篇: paros web中间件攻击、扫描、监控