C++でsystem("foocmd param1")
を使用してunixコマンドを実行しているとします。 foocmd
がstderrを介して端末に「無効な引数」を返した場合、foocmd
が失敗したかどうかをC++コードでどのように取得できますか?ここで"system(cmd)"から実行されたコマンドが失敗したかどうかをC++コードに知らせるにはどうすればよいですか?
は私の未遂ソリューションです:
私の仮定は、私は何がコマンドを呼び出すことにより、標準エラー出力に戻ってしまったかどうかを確認すべきであるということです。 これを行うには、私はpopenに切り替えることを試みた。現在、これが私がチェックする方法です。最初にstderrをファイルに出力します。
sprintf(cmd, "foocmd param1 2>temp.txt");
system(cmd);
次に、temp.txtが空であるかどうかを確認します。
しかし、もっと良い方法があります。誰も私に手を貸すことができますか?
を 'ステータスコードを返しますsystem'。 –
[マニュアルページを読む](http://man7.org/linux/man-pages/man3/system.3.html)。 –
[Cでのシステム()の戻り値の重複の可能性があります](http://stackoverflow.com/questions/8654089/return-value-of-system-in-c) – Hayt