不断分配内存使系统崩溃以及如何为标准用户阻止它

标签 c linux

<分区>

您好,我尝试使用 calloc 函数连续分配内存。很明显,系统内存被填满并崩溃了。但最糟糕的是,即使我是标准用户,如果我能够运行该程序,系统也会崩溃。我们如何才能阻止这种情况发生在标准用户身上。

使用的代码是:

#include <stdio.h>
#include <stdlib.h>

int main()
{
  while(1)
  {
    int *abc;
    abc=(int*)calloc(1000,sizeof(int));
   }
}

可能有一些方法可以阻止它,否则用户很容易获得 ssh 访问权限,然后他很容易使系统崩溃。

最佳答案

您可以设置各种内存限制。

ulimit 浮现在脑海中。这可以由 shell 设置(参见 http://unixhelp.ed.ac.uk/CGI/man-cgi?ulimit )。还有一种在系统范围内设置它们的方法。有一个文件存储这些,但我想不起来它的位置。你需要谷歌一下。

关于不断分配内存使系统崩溃以及如何为标准用户阻止它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17730941/

相关文章:

linux - 找到无限系列的总和

linux - 修补/替换内存中的linux内核

c - 为什么在我使用归并排序时,一个额外的元素被添加到我的 void** 数组中?

c - 如何使用 ICU4C 规范化字符串?

c - 如何从不是字节对齐的源复制内存(移位)

你能具体告诉我这个程序是做什么的吗?

c - GTK 窗口中的 Gstreamer 视频

python - 在没有 sudo 权限的 Linux 系统上安装 Python TA-lib 包时出错

linux - 网上有哪些活跃的 Linux/嵌入式 Linux 论坛?

c++ - 从 QProcess 执行/bin/登录