Если по какой-то причине в вашей встроенной системе установлен glib, вы можете попытаться использовать их эквиваленты системных вызовов.
См:
http://library.gnome.org/devel/glib/2.22/glib-Spawning-Processes.html
g_spawn_sync, в частности, кажется, делает то, что вам нужно.
К сожалению, вызов system () часто затрудняет получение хороших кодов ошибок. Я думаю, что стоило бы попробовать fork () и exec () (как предлагали другие авторы), чтобы посмотреть, вернут ли они вам более подробный код ошибки, и является ли это fork () или exec () (или что-то еще), который терпит неудачу.
Если вы сможете собрать эту дополнительную информацию, она может помочь другим в вашей отладке.