我想記錄,並可能向用戶發出警告,如果該程序應耗盡內存,讓他們有機會嘗試一些釋放(希望)。雖然我可以預分配給顯示的情況所需要的必要的GUI的實體,我擔心的是,使用更基本的操作cstdio
如打開或寫入文件,在這種情況下是不可能的。將「內存不足」錯誤寫入文件,無內存?
我的問題是,如果一個程序不能再動態分配內存,是否仍然可以使用cstdio
?我是否需要採取特殊措施,例如預先打開文件,或將其設置爲不使用緩衝區?請問cstring
功能仍然可以運作?在這種情況下需要了解哪些其他可能的障礙?
(警告用戶在這種情況下的奢侈品,主要目標是錯誤記錄到文件中,然後嘗試用cstdio搶救的相關數據,然後向用戶發出警告,按照這個順序)
當你得到這個錯誤可能爲時已晚,但你有同樣的錯誤,即使你無法分配足夠的**的連續空間**所以其他操作工作,即使一個分配請求失敗。我建議警告用戶(並記錄)空閒內存何時低於閾值**(此檢查的執行頻率取決於您的分配模式)。 –
現在,內存並沒有預先彙集起來,它只是在需要的時候從操作系統中抓取。 (需要儘快改變)。儘管分配內存的方式,它會在記錄/警告之後重新嘗試分配內存。除非程序試圖在此之後分配更多內存(並導致崩潰),否則該方案不會更改,應該有可能恢復(希望!) –
我們嘗試解決這個問題的方法之一是在註冊我們的異常處理程序時分配緩衝區,然後如果發生異常,我們將釋放緩衝區並希望有足夠的內存來允許處理程序寫出它需要的數據。 –