gpt4 book ai didi

c - 在内存不足导致段错误之前抢先挂起应用程序

转载 作者:IT王子 更新时间:2023-10-29 01:26:34 25 4
gpt4 key购买 nike

我有一个大型应用程序,它使用 mallocmmap 分配大量内存我想捕获所有失败方法并尝试恢复。为了解决交换空间不足的情况,我检查了 mallocrealloc 的返回值,如果它们为空,应用程序会提示用户清除一些磁盘空间在继续之前。

该应用程序还使用稀疏文件使用 mmap 分配许多大型数据数组。我希望能够从由于磁盘空间限制导致写入映射内存失败的情况中恢复过来。有什么办法可以做到这一点,还是我最好结合磁盘空间监视并在这种情况下停止相关线程。

我在用 c 语言工作,应用程序需要在 linux 和 solaris 上运行

最佳答案

进程无法预测由于虚拟内存不足导致内存访问失败的事实,尤其是在您使用 mmaped 稀疏文件技术的情况下。

您可能会捕获 sigsegv,但这种方法存在问题(参见 Segmentation fault handling)。否则,更简单的解决方案是监视文件系统的可用空间并预防性地卡住/停止最消耗的进程。

关于c - 在内存不足导致段错误之前抢先挂起应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27707197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com