0

我有一个在 IRIX 上运行的应用程序,它使用m_fork()创建多个进程。源代码。

当我使用 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(),一切都按预期工作。

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

e:我在这里试图回答的核心问题是,“我怎样才能为分叉分配足够的内存?”

4

0 回答 0