![シェルスクリプトの戻り値をC / C ++に渡す[閉じる]](https://linux33.com/image/73619/%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%AE%E6%88%BB%E3%82%8A%E5%80%A4%E3%82%92C%20%2F%20C%20%2B%2B%E3%81%AB%E6%B8%A1%E3%81%99%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
私はGoogleで可能な解決策を見つけようとしましたが、私が見つけたのは値を返す方法の説明だけではなく、いくつかのプログラミング言語(私の場合はC / C ++?)から値を受け入れる方法ではありません。これを行う方法を知っている人はいますか?いくつかのヒントがありますか?
答え1
私はLinuxに焦点を当てていますが、私の答えは他のPOSIXシステムにも当てはまります。
次のようなCまたはC ++プログラムでシェルスクリプトを実行します。
一般的な混合物フォーク(2)、実行(2)、プロセスを待っている(2)
waitpid
終了コードを提供するにはwhenを使用してください。WEXITSTATUS
WIFEXITED
これシステム(3)C 標準ライブラリ関数。
waipid
内部実装が返すものを返します。これポッペン(3)POSIX 標準ライブラリ関数。利用
WEXITSTATUS
実績pclose
system
&が使用popen
されますfork
、、、execve
waitpid
システムコール(その他いくつかあります。参照)システムコール(2)リストを取得するには)。
詳しくは、Linuxシステムのプログラミングに関する良い本を読んでください(例:高度なLinuxプログラミング著者:M.Mitchell et al。コピーウェブ上またはアプエなど...)