2011-01-08 5 views
0

C++プログラムのsystem()が-1を返す理由とケースを探しています。私は別のクラスではないクラスでうまく動作する状況にあります。のは、最初の標準はsystem関数の戻り値を記述する方法を検討g ++では、system()関数は-1を返します

+5

いくつかのコードを投稿してください。 –

+5

あなたのコードの一部を投稿してください。ところで、標準ライブラリの 'system'関数について(最初の文字は小文字で)話している場合、戻り値-1は必ずしもエラーがあるということを意味しません。 –

+2

system()は、呼び出されたプログラムの終了コードを返します。 – Jaywalker

答えて

5

てみましょう:引数がNULLポインタである

場合は、システムの機能が コマンドプロセッサが利用可能な場合にのみ、0以外の値を返します。 引数がNULLポインタでなく、システムの 関数が復帰した場合は、実装定義の値を返します。

私はそうのはits documentationを参照してみましょう、あなたの実装はGNU libcのであると仮定します:、

戻り値は-1、シェルプロセスを作成することができなかった場合それ以外の場合はシェルプロセスの状態です。

ステータスは、コマンドの結果ではないthis page上に説明したツールを使用して解釈することができます。つまり、シェルプロセスの作成に失敗した場合を除いて、system()は決して-1を返すべきではありません。

関連する問題