推 LPH66:定時 fflush 可能會好一點 (如果你說的 memory 是指 I/O 的 09/20 20:44
→ LPH66:buffer 的話...不過基本上 buffer 寫滿了就會出去就是了) 09/20 20:44
→ LPH66:(所以也不用太擔心 I/O 所需暫存的用量 畢竟那是固定的) 09/20 20:44
→ QQ29:所以可以說是所有寫檔案的API 都是這種機制去maintain 都會 09/20 20:48
→ QQ29:有個buffer 我不用擔心寫爆他 ...因為我不是用c的api去做 09/20 20:48
→ QQ29:我用c# = = 09/20 20:49
→ james732:正常的情況是不會爆 不過還是要看一下 API 怎麼說 09/20 22:24
→ james732:說不定有 libaray 把 flush 的責任全部交給使用者 XD 09/20 22:25
→ ccbruce:放心給它寫下去就好了, 注意一下HANDLE的計數 09/21 00:35
→ ccbruce:你的buffer是固定的, 另外要不要刷要看CreateFile時的模式 09/21 00:35
→ ccbruce:不過我遇到這需求都是把檔案映射到記憶體裡, 然後拚命寫 09/21 00:36
→ ccbruce:用sprintf之類的排版 09/21 00:37
→ sunneo:File Stream有佔用記憶體 f*open系列會有memory一樣的error 09/21 00:43
→ sunneo:man (3) fopen 可以看到 09/21 00:43
→ tinlans:不管你用什麼,stream 相關的東西都有固定大小的 buffer, 09/21 04:08
→ tinlans:除非你開幾萬個檔案,不然沒差吧。只是沒 flush 又沒關檔 09/21 04:08
→ tinlans:,程式直接結束或是斷電當機之類的,你檔案就可能不完整。 09/21 04:08
→ king19880326:你想太多了,作業系統沒你想的脆弱.現在的作業系統都 09/24 03:01
→ king19880326:有所謂的 protection. 另外你說的佔用記憶體應是 09/24 03:02
→ king19880326:file system 的 buffer cache 機制, 的確你所說的不 09/24 03:03
→ king19880326:停的寫檔案, 可能會使得系統的 buffer cache 一直被 09/24 03:04
→ king19880326:你寫檔案的 process 所佔據, 但那只是如同 cache 一 09/24 03:05
→ king19880326:般的效應, 因為你有在寫檔案所以把那些 buffer cache 09/24 03:06
→ king19880326:分給你用而已, 但事實上所用的量都在作業系統的設計 09/24 03:06
→ king19880326:裡面. 09/24 03:07
→ king19880326:最後還是建議你, 作業系統的課本去翻一翻. 另外推薦 09/24 03:08
→ king19880326:你 "Design of the UNIX Operating System" 這本老書 09/24 03:09
→ king19880326:很多你在版上問的問題看完後都能自己解答 09/24 03:09
→ king19880326:但我想你大概也不會去看,不然就不會一直問類似的問題 09/24 03:09
→ king19880326:了 09/24 03:09
→ king19880326:順帶一提我認為你其實不懂 memory leak 的真正涵意 09/24 03:17