Как я могу выделить достаточно памяти для этой программы для m_fork в C?

У меня есть приложение, работающее на 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: Основной вопрос, на который я пытаюсь получить ответ: "Как я могу выделить достаточно памяти для вилок?"

0 ответов

Другие вопросы по тегам