Как я могу выполнить внешние команды в C / Linux, не используя system, popen, fork, exec?

Я хотел бы знать, есть ли хороший способ выполнить внешнюю команду в среде Linux с использованием языка C без использования system (), popen (), fork (), exec ()?

Причина, по которой я не могу использовать эти функции, заключается в том, что мое основное приложение израсходовало большую часть системных ресурсов (то есть памяти) на моей встроенной плате. Если я сделаю форк, доска не сможет создать дубликат моего основного приложения. Из того, что я прочитал в книге, как system (), так и popen () на самом деле используют fork (), поэтому я не могу их использовать.

Единственная идея, которая у меня есть на данный момент, - это создать процесс до того, как я запущу свое основное приложение и использую IPC (канал или сокет), чтобы сообщить новому процессу, какие внешние команды ему нужно запустить с помощью system () или popen (), и вернуть результаты обратно. к моему заявлению, когда это будет сделано.

Ответы на вопрос(1)

Ваш ответ на вопрос