Я бы порекомендовал идти с розетками. Если ваша C-программа может устанавливать и прослушивать локальные или интернет-сокеты, вы можете использовать средства сокетов на любом языке, чтобы посылать ей аргументы и получать выходные данные.
Если это будет слишком сложно, запустите программу php exec, направив вывод в какой-нибудь файл. Затем попросите php прочитать этот файл.
Глядя на выходные данные вашей программы, я думаю, что попытка напечатать результаты shell_exec () приведет к сжатым выводам.
Итак, вы могли бы shell_exec ("/ bin / program -arguments> /tmp/prog-tmp.txt"), а затем прочитать prog-tmp.txt.