我想记录,并可能向用户发出警告,如果该程序应耗尽内存,让他们有机会尝试一些释放(希望)。虽然我可以预分配给显示的情况所需要的必要的GUI的实体,我担心的是,使用更基本的操作cstdio
如打开或写入文件,在这种情况下是不可能的。将“内存不足”错误写入文件,无内存?
我的问题是,如果一个程序不能再动态分配内存,是否仍然可以使用cstdio
?我是否需要采取特殊措施,例如预先打开文件,或将其设置为不使用缓冲区?请问cstring
功能仍然可以运作?在这种情况下需要了解哪些其他可能的障碍?
(警告用户在这种情况下的奢侈品,主要目标是错误记录到文件中,然后尝试用cstdio抢救的相关数据,然后向用户发出警告,按照这个顺序)
当你得到这个错误可能为时已晚,但你有同样的错误,即使你无法分配足够的**的连续空间**所以其他操作工作,即使一个分配请求失败。我建议警告用户(并记录)空闲内存何时低于阈值**(此检查的执行频率取决于您的分配模式)。 –
现在,内存并没有预先汇集起来,它只是在需要的时候从操作系统中抓取。 (需要尽快改变)。尽管分配内存的方式,它会在记录/警告之后重新尝试分配内存。除非程序试图在此之后分配更多内存(并导致崩溃),否则该方案不会更改,应该有可能恢复(希望!) –
我们尝试解决这个问题的方法之一是在注册我们的异常处理程序时分配缓冲区,然后如果发生异常,我们将释放缓冲区并希望有足够的内存来允许处理程序写出它需要的数据。 –