根據定義取自:http://www.cplusplus.com/reference/iostream/ostream/flush/,目前還不清楚爲什麼函數存在,以及您將使用它的目的。爲什麼不在每次寫入流時都調用flush()?簡而言之,flush中的flush()的目的是什麼
回答
在所有可能的情況下,flush
這個詞來源於你真實需要的。一個馬桶......
所以讓我們嘗試廁所的比喻:
沖洗每一個新的下降放入碗中時間是非常耗時和水完全是浪費。如今每個人都在努力保護環境,這是一個大問題。
那麼你會怎麼做呢?通過將其全部保存並在最後沖洗一次來緩衝它。如果不管什麼原因,當你沒有完成時,你總是可以「過早地」沖洗中間的某個地方。
C++流(除其他外)的工作方式大致相同。爲了減少開銷並提高性能,流會緩存其內容,並且只是定期「刷新」它。這樣做的缺點是你可能會得到像這個問題中的「延遲」行爲:Why does printf not flush after the call unless a newline is in the format string?
所以這就是flush()
的用途。允許您覆蓋緩衝區。
我希望我不必用圖片和基準來補充這一點。 – Mysticial
+1「廁所比喻」! (: –
每次在硬盤驅動器上寫入一個字符文件效率不高。通過網絡爲每個字符發送數據包效率不高。因此流式傳輸經常被緩存。 flush()
只是一種在流式傳輸過程中控制「手動」的方式,必須刷新緩存並且應該真正發送或寫入內容。
- 1. getHibernateTemplate()。flush()和getSession()之間有什麼不同。flush()
- 2. 什麼是PHP flush()的Java等價物?
- 3. OpenMP flush與flush(列表)
- 4. magento緩存管理中的「Flush Magento Cache」和「Flush Cache Storage」有什麼區別?
- 5. OutputStream的flush方法什麼都不做?
- 6. 「簡而言之」是什麼意思
- 7. 在close()之前使用flush()
- 8. 什麼時候調用stringbuf :: flush?
- 9. flush命令有什麼作用?
- 10. 什麼是bufferedwriter close()和flush()方法的內存效果?
- 11. 的Symfony:錯誤時的flush()
- 12. Hibernate flush()和Cascade.PERSIST
- 13. WAMP和flush()
- 14. JPA EntityTransaction flush
- 15. Stream Flush vs FlushAsync
- 16. Libevent bufferevent socket flush
- 17. Node.js stdout flush
- 18. Symfony2 flush()實體
- 19. javascript flush文本
- 20. android flush sqlite表
- 21. asp.net tracing without flush
- 22. flush in java.io.FileWriter
- 23. QDataStream和Flush
- 24. res.flushBuffer()vs res.getOutputStream()。flush();
- 25. 函數getHibernateTemplate()。flush()
- 26. 的flush()在rd.include VS rd.forward()
- 27. Java ObjectOutputStream的方法flush()
- 28. in boost iostream filtering_ostream,sync(),strict_sync()和flush()之間有什麼區別?
- 29. Flush single app django 1.9
- 30. mysql - FLUSH TABLE需要?
緩衝速度比原始吞吐量要快:http://en.wikipedia.org/wiki/Data_buffer。那篇文章中的過山車比喻實際上相當不錯。 – Corbin
@Mysticial:Ewwww! –
令人難忘的難忘... –