system() не предоставляет подобного функционала.
Необходимо перед запуском процесса создать набор пайпов, форкнуть процесс, в дочернем заменить на пайпы stdin и stdout, затем уже стартовать процесс с помощью одного из вариантов exec.
Если обратная связь не нужна (т.е. не нужно читать, то что пишет дочерний процесс), то можно делать по упрощенной схеме через popen/pclose.
На эту тему в гугле и в литературе масса информации, просто правильно задайте вопрос. Искать нужно что-то типа "перенаправление stdin stdout"
PS: запуск из sh скрипта или на прямую значения не имеет.