提问人:czg 提问时间:11/6/2023 最后编辑:Jabberwockyczg 更新时间:11/6/2023 访问量:55
在C程序中,我如何知道OS(CentOS 7)中有多少可用内存?[复制]
In C program, how do I know how much free memory in OS(CentOS 7)? [duplicate]
问:
我在 C 程序中使用 malloc() 函数来获取可用内存。
我经常遇到一个问题,当 CentOS7 操作系统无法分配更多内存时,malloc() 函数不会返回 NULL,而 my 进程作系统杀死。
我查了一些信息,了解到操作系统中有一个 OOM Killer 进程,当操作系统内存不足时,它会随机停止消耗大量内存的用户进程。
在这种情况下,我似乎无法在程序中知道操作系统是否仍有可用内存,并且当我调用 malloc() 函数时,我失去了对程序的控制。
我想知道的是:
- 在调用 malloc() 函数之前,有没有办法知道操作系统中有多少可用内存?
- 或者我如何让 malloc() 函数在无法分配内存时返回 NULL,而不是让我的进程被 OOM Killer 杀死?
谢谢。
答: 暂无答案
评论