O que você quer é possível e fácil. Apenas digite
/your/java/program "$(/your/c/program)"
A notação $(…) é chamada de “substituição de comando”.
%código%
executa $(command1) com saída para um pipe
captura-o e coloca-o na linha de comando.
Então
command2 $(command1)runs
command1
com a saída de command2
como um argumento de linha de comando.
Você deve adicionar aspas ( command1 ) para lidar com o caso
onde a saída de "…"
(ou seja, seu programa C) é de várias palavras (por exemplo, command1 ).
Isso é o que você está pedindo.
Eu discuto isso em alguma extensão aqui , onde mostro o exemplo
$ ls -ld "$(date "+%B %Y").txt" -rwxr-xr-x 1 username groupname 687 Apr 2 11:09 April 2018.txt
P.S. Se você está em um sistema muito antigo ou incomum,
a notação printf("planet earth"); pode não funcionar.
Nesse caso, tente
/your/java/program "'/your/c/program'"
$(…) é uma versão antiga de '…' .
Se $(…) funcionar no seu sistema, use-o.