14得票2回答
使用setrlimit()设置堆栈大小并引发堆栈溢出/段错误。

在下面的示例中,我尝试将堆栈大小设置为1kb。 为什么现在可以在foo()中分配大小为8kb的int数组,放在栈上?#include <stdio.h> #include <sys/resource.h> void foo(void); int main() { ...

13得票1回答
POSIX rlimit: 我们对RLIMIT_DATA有哪些确切的假设?

前提条件 POSIX.1 2008 规定了 setrlimit() 和 getrlimit() 函数。为resource参数提供了各种常量,以下部分是为更好地理解我问题而重复的一些内容。 以下资源已定义: (...) RLIMIT_DATA 这是进程数据...

12得票2回答
如何限制使用`malloc()`获取的内存而不限制堆栈?

我试图限制学生的代码不要进行过多的内存分配,以免拖慢我的测试机。我已经尝试过:setrlimit(RLIMIT_DATA, r); 这里的r是一个保存限制的结构体。但遗憾的是,尽管这个限制可以阻止brk和sbrk进行分配,但C库会切换到使用mmap并继续分配内存。 我还尝试过其他方法。set...

11得票1回答
如何使用 `setrlimit` 限制内存使用?RLIMIT_AS 太快杀死进程;RLIMIT_DATA、RLIMIT_RSS 和 RLIMIT_STACK 没有杀死进程。

我正在尝试在Linux系统上使用setrlimit限制内存使用,以防止我的进程崩溃机器(我的代码导致高性能集群上的节点崩溃,因为一个错误导致内存消耗超过100 GiB)。我似乎找不到正确的资源来传递给setrlimit;我认为应该是resident,这个不能用setrlimit限制, 但我对r...

11得票2回答
在Windows上通过程序设置堆栈大小

在WinAPI中是否可以像Linux上的setrlimit一样在运行时为当前线程设置堆栈大小?我的意思是,如果当前线程的堆栈大小不足以满足当前的要求,则增加当前线程的保留堆栈大小。这是一个库,可能会被其他编程语言的线程调用,因此无法在编译时设置堆栈大小。 如果不行,有没有想法解决方案,例如更...

10得票2回答
进程资源未受setrlimit限制

我写了一个简单的程序,限制它的数据大小为65Kb,并验证了这一点。为此,我分配了一个超过65Kb的虚拟内存,如果我所有步骤都正确(如下所示),那么malloc调用应该失败,对吧? #include <sys/resource.h> #include <stdio.h>...

10得票1回答
Windows上的资源限制?

Windows系统中与Python的resource模块和POSIXsetrlimit相应资源限制机制等效的工具是什么? 具体而言,我正在将子进程的处理器时间限制在几秒钟内。 如果在约束条件下未完成,则会终止。

8得票2回答
在子进程中关闭打开的文件描述符

有没有一种方法可以在子进程中遍历已经打开的文件描述符(由父进程打开),并逐个关闭它们? 操作系统:Unix。 关闭的原因:setrlimit()函数中的RLIMIT_NOFILE限制了一个进程可以分配的文件描述符数量。如果我们想通过设置此限制来限制子进程,它取决于已分配的文件描述符。 尝...

7得票4回答
查找当前打开的文件句柄数量(不使用lsof)

在*NIX系统中,有没有办法查找当前正在运行的进程中有多少个打开的文件句柄?我正在寻找一个API或C语言公式,用于在所讨论的运行进程内部使用。