2012-02-24 23 views
90

exit(0)exit(1)の違いは何ですか?Pythonのexit(0)とexit(1)の違い

私は見てみましたが、これらの行に特定の質問が見つかりませんでした。それが既に答えられているなら、リンクで十分でしょう。

+7

[docs]の['exit()'へのリンクです(https://docs.python.org/3/library/constants.html#サイトに追加された定数)、私は永遠に見つけました。 –

+2

注意:['サイトモジュール(起動時に自動的にインポートされますが、-Sコマンドラインオプションが指定されている場合を除き)は、組み込み名前空間にいくつかの定数を追加します。これらはインタラクティブインタプリタシェルにとって便利で、代わりにプログラム '](https://docs.python.org/3/library/constants.html#constants-added-by-the-site-module)で使用すべきではありません、 '[sys.exit()'](https://docs.python.org/2/library/sys.html#sys.exit)を使用してください。 – Udi

+0

これで議論されている 'exit(0)'また、 '_exit(0)'というアンダースコアを持つものもありますが、その違いについてはこちらで説明しています(https://stackoverflow.com/questions/9591350/what-is-difference-between-sys-exit0-and-os- exit0) – cardamom

答えて

147

0と1は終了コードです。

exit(0)は、すべてのエラー/問題

exit(1)ないクリーンな出口はそこにいくつかの問題/エラー/問題だったとプログラムが終了している理由があることを意味を意味します。

これはPython固有ではなく、かなり一般的です。ゼロ以外の終了コードは異常終了として扱われ、時にはエラーコードは問題の内容を示します。ゼロエラーコードは、正常終了を意味します。

これは、他のプログラム、シェル、呼び出し元などがあなたのプログラムで何が起こったかを知り、それに従って処理するのに便利です。

+4

そしてexit(-1)はどうですか? – Faizan

+7

@Faizan:終了コードはUnix上の8ビット値です。 'exit(-1)'を呼び出すと、その値は 'exit(255)'に相当します。最下位8ビットは呼び出し元のプログラム(シェルなど)に中継されます。 –

15

プログラムの実行が終了すると、プログラムのexit statusが決定されます(通常は成功すると0、エラーは1)。

これはPythonに特有のものではなく、正確な効果はオペレーティングシステムとプログラムの呼び出し方法によって異なります(ただし、Pythonスクリプトを実行している場合は99%ですが問題ありません)。

7

Pythonを含むすべてのCプログラムの標準的な規則は、成功を示すためにはexit(0)、失敗を示すにはexit(1)またはその他のゼロ以外の値(1..255の範囲内)です。 0..255の範囲外の値は、モジュロ256として扱われます(終了ステータスは8ビット値に格納されます)。時には、それは署名されたものとして扱われます(-128、-127などが見えるかもしれませんが)。通常、それは署名されていないものとして扱われます。

このステータスは、Pythonを起動したコードで使用できます。この規約はプラットフォーム間で適用されますが、非ゼロ終了ステータスの意味はプラットフォームによって異なります。

5

exit()関数に渡す数値は、オペレーティングシステムに与えられたプログラムの戻りコードだけです。プログラムの観点からは違いはありません。両方の場合で実行が終了し、関数に渡された値がOSに渡されます。しかし、いくつかのツールとスクリプトは、プログラムの終了コードを考慮しています。ほとんどのツールは、成功すると0を返し、エラーを示すには0以外を返します。

したがって、スクリプト、自動ツール、またはリターンコード(IDEなど)を考慮した他のソフトウェアからプログラムを実行する場合は、返すものに注意する必要があります。

疑問がある場合は、0が返ってすべてがOKであることを示します。

0

exit(0):これにより、プログラムは正常終了して終了します。

exit(1):これにより、プログラムがシステム固有の意味で終了します。

多くのシステムでは、exit(1)が何らかの失敗を通知しますが、 は保証されません。正常終了

  • EXIT_FAILURE - - 失敗した終了
  • 0 - 同じ
  • EXIT_SUCCESSとして

    • EXIT_SUCCESS:今思い出すと

      は、Cの標準は3つの標準の終了 値を認識し、

    関連する問題