如何在C中为m_fork分配足够的内存?

时间:2014-10-14 16:04:32

标签: c multithreading memory irix

我有一个在IRIX上运行的应用程序,它使用m_fork()来创建许多进程。 Source code.

当我用3个叉子运行应用程序时,一切都按预期工作。当我要求四个叉子时,它无法解决“ENOMEM”错误:

bash-2.05$ ./hello 3
 Process spawn limit is  8
 Hello world from process 1
 Hello world from process 2
 Hello world from process 0
 2nd line: Hello world from process 1
 2nd line: Hello world from process 2
 2nd line: Hello world from process 0
bash-2.05$ ./hello 4
 Process spawn limit is  8
m_fork() did not work

我知道这是一个内存分配问题,因为当我在malloc(900000000);之前投放m_fork()时,一切都按预期工作。

虽然这确实解决了问题,但它不是一个合适的解决方案,因为它只是一个任意大的数字。如何为forks动态分配足够的内存?

e:我想在这里得到解答的核心问题是,“我怎样才能为分配分配足够的内存?”

0 个答案:

没有答案