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