C言語でゼロに戻るとはどういう意味ですか?


ベストアンサー

「main()」関数について話していると思いますか?

プログラムが終了するとCが発明された(場合によっては他のOSで)UNIX / Linuxでは、実行を開始したシステムが成功したか失敗したかを判断するために使用できる「終了ステータス」が返されます。

ゼロの戻り結果は、「すべてが正常に機能した」ことを意味します。 -ゼロ以外の結果は、ある種のエラーコードを示します。

これは、アイコンなどからプログラムを起動するグラフィック環境ではあまり使用されません(あるとしても)。しかし、コマンドラインアプリケーションでは、それは天の恵みです。

たとえば、複雑なアプリケーションのコンパイルとリンクに使用される「make」ツールを取り上げます。さまざまなコンパイラとリンカは、作業中のプログラムが正しくコンパイルされたときに「return 0」を実行します。コンパイルされなかった場合は、「return1」を実行します。

「make」プログラムは、戻り値を調べます。実行するすべてのプログラムのステータス-いずれかがゼロ以外を返すとビルドを中止します。

これは非常に便利なことです。

つまり、私が作成したプログラムがあります。いくつかの画像処理を行います。読み取ったファイルが破損している場合は「return2」を実行します。ファイルが存在しない場合は「return1」を実行し、すべてが正常に機能した場合にのみ「return0」を実行します。

今-リリースパッケージに画像が組み込まれている複雑なプログラムをビルドする場合-Makefileに画像処理プログラムをトリガーさせることができます-何らかの理由で失敗した場合-「make」の実行が中断されるため、

すべてのUNIX / Linuxコマンドラインツールは、失敗に対してゼロ以外の値を返します。したがって、標準の「rm」プログラムを使用してファイルを削除した場合でも、ファイルが正常に削除された場合は「return0」、何らかの理由でファイルを削除できなかった場合は「return1」。

いくつかのプログラムは、正確に何が悪かったかに応じて異なるコードを返しますが、これはかなりのことです。異常です。

「exit(0)」関数を呼び出すと、パラメータ「0」もリターンステータスになることに注意してください。正常に機能している場合は「exit(0)」を実行し、「そうでない場合はexit(1)」。

回答

ありますCで return 0 ステートメントを実行する可能性のあるさまざまな場所で、この質問にはさまざまな回答が得られます。

特定のケースに答えます:

int main(int argc, char *argv[])

{

...

return 0;

}

メインから0を返すのはなぜですか?

最初にUNIX、次にLinuxで例示される* IXファミリのオペレーティングシステムには、単一の整数の終了コードを持つプログラムが存在します。名目上は成功または失敗を示すために使用されます。

ほとんどの場合、値0は成功を示し、ゼロ以外の値は失敗を示し、値は通常、特定のエラー情報を示します。

* IXシステムで実行されている

CおよびC ++プログラムは、標準ライブラリ exit()関数に渡される整数値または整数のいずれかによってこの終了コードを提供します。 main()

したがって、この場合、メインから0を返し、プログラムが成功コードで終了したことを* IXシステムに示します。

-マーク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です