答えにたどり着くまでに、いろいろ検索していました。
photo credit: Stuck in Customs via photopin cc
他のソフトウェアベンダーが開発したアプリと、自社のアプリが連動できる方法があるのかないのか調査をしています。
自社のアプリは、Linuxで動作するので、他のソフトウェアベンダーのアプリもLinuxで動作する必要があります。
あるソフトウェアベンダーのアプリの試用版は、
# ./test -f test.log
で起動した後に、
# echo $?
とすれば、戻り値が取得できるところまでは情報がもらえました。
つまずいたところ
自社のアプリはC言語で作っているので、C言語のsystem関数を使って、
int ret; ret = system( "./test -f test.log" ); printf( "%d", ret );
としすれば、同じように戻り値が取得できると考えていましたが、結果は異なる値が取得できました。
解決策
一時はシェルで処理しないといけないのかと考えたりしていましたが、いろいろ検索した結果、system関数の戻り値をWEXITSTATUSマクロを使って値を取り出せば、system関数で起動したアプリケーションの戻り値が取得できることがわかりました。
int ret; ret = system( "./test -f test.log" ); printf( "%d", WEXITSTATUS(ret) );
こちらのページでもWEXITSTATUSマクロを紹介されているので、最初から読めばよかったです。