exit(0)とexit(1)の違い

著者: Laura McKinney
作成日: 2 4月 2021
更新日: 12 5月 2024
Anonim
#69 system.exit(0)vs system.exit(1)vs system.exit(-1)java | System.exit()in Java | Java | RedSysTech
ビデオ: #69 system.exit(0)vs system.exit(1)vs system.exit(-1)java | System.exit()in Java | Java | RedSysTech

コンテンツ


exit(0)とexit(1)は、プログラムの実行中にコントロールをプログラムからジャンプさせるC ++のジャンプステートメントです。 exit(0)とexit(1)の両方の関数を使用してプログラムを終了しますが、exit(0)とexit(1)には大きな違いが1つあります。出口(0)はプログラムの正常終了を示し、出口(1)はプログラムの異常終了を示します。

比較チャートを使用して、exit(0)とexit(1)の違いを調べてみましょう。

  1. 比較表
  2. 定義
  3. 主な違い
  4. 結論

比較表

比較の基礎exit(0)exit(1)
ベーシックプログラムの「成功/正常」終了/完了についてオペレーティングシステムを報告します。プログラムの「異常な」終了についてオペレーティングシステムを報告します。
構文exit(0);exit(1);
示すタスクが正常に実行されたことを示します。エラーのためにタスクがその間に中断されたことを示します。
マクロEXIT_SUCCESSEXIT_FAILURE

exit(0)の定義

関数exit(0)は、C ++のジャンプステートメントです。プログラムを終了するか、プログラムから制御を終了させるために使用されます。プログラムが正常に終了したことをオペレーティングシステムに報告し、プログラムのタスクが正常に完了したことをオペレーティングシステムに示します。戻りコード「0」に使用されるマクロは「EXIT_SUCCESS」なので、exit(EXIT_SUCCESS)のように使用できます。 exit(0)関数の一般的な形式は次のとおりです。


void exit(int return_code);

ここで、仮パラメータ「return_code」は呼び出し元の関数に返される値です。呼び出し側の関数に返される値はゼロまたはゼロ以外の値になるため、returen_codeは常に整数型です。 exit(0)は標準ライブラリ関数です。プログラムでexit(0)を使用している場合、ヘッダーファイルを使用する必要があります .
例でexit(0)を理解しましょう:

#含める //標準ライブラリ関数int main(){FILE * ptrFile; ptrFile = fopen( "myfile.txt"、 "r"); //(ptrFile == NULL){cout << "ファイルを開く際のエラー"; exit(1); //代わりにexit(EXIT_FAILURE)を使用できます} exit(0); //代わりにexit(EXIT_SUCCESS)を使用できます}

上記のコードでは、「myfile.txt」という名前のファイルを開こうとしています。ファイル「myfile.txt」へのポインターを作成しました。ファイル「myfile.txt」が存在する場合、ポインターはそのファイルのアドレスを指し、exit(0)は実行され、ファイルが正常に開かれたことをオペレーティングシステムに報告します。ファイルが存在しない場合、ファイル「myfile.txt」へのポインタにNULLが含まれるようになり、exit(1)は、エラーなどによってファイルが開かないことをオペレーティングシステムに報告して実行されます。

exit(1)の定義

関数exit(1)もC ++のジャンプステートメントです。 exit(1)もプログラムを終了しますが、異常終了します。 exit(1)は、プログラムが正常に実行されなかったか、何らかのエラーまたはその他のエラーが原因で実行の間に中断されたことをオペレーティングシステムに報告します。 exit(1)関数は、標準ライブラリ関数で定義されています。プログラムでexit(1)を使用している場合は、ヘッダーファイルを明示的に指定する必要があります プログラムの上部。
戻りコード「1」のマクロは「EXIT_FAILURE」であるため、「exit(EXIT_FAILURE)」のように記述できます。
次に、プログラムの助けを借りてexit(1)関数を理解しましょう。

//スタックの先頭にある要素をポップしますint pop(int stack_name、int size、int Top){if(Top ==-1){cout << "stack is underflow"; exit(1); } else {int s = s;上 - ;返却値); }}

ここで、スタックの最上部が空であることが判明した場合、つまり、Topが-1である場合、スタックの最上部で要素をポップするように関数が定義されています。スタックが空なので、スタックの一番上の要素をポップアウトするタスクは正常に完了せず、exit(1)を返します。これは、ポップ機能のタスクが完了していないことを示します。したがって、実行は異常終了します。


  1. プログラムの正常終了を示す唯一のreturn_codeは「0」です。プログラムの異常終了を報告するには、「0」以外の値を使用できます。つまり、「1」、「2」、「3」を使用できます。つまり、ゼロ以外の値はプログラムの異常終了を示します。
  2. return_codeの代わりにマクロを使用することもできます。同様に、「0」では「EXIT_SUCCESS」を使用できますが、「1」では「EXIT_FAILURE」を使用できます。

類似性:

  1. exit(0)とexit(1)は、どちらもC ++のジャンプステートメントです。
  2. exit(0)とexit(1)は両方とも、プログラムを終了するために使用されます。
  3. exit(0)とexit(1)の両方は、ヘッダーファイルで定義されます.
  4. exit(0)とexit(1)は両方とも、プログラムの終了ステータスをオペレーティングシステムに報告します。

注意:

exit()関数が何も返さない場合、プログラムの終了ステータスをオペレーティングシステムに公開したくないことを意味します。

結論:

プログラムの終了ステータスを報告するには、exit()関数を使用します。 exit(0)は、プログラムのタスクが正常に完了したことをオペレーティングシステムに明らかにします。 exit(1)は、プログラムのタスクが完了しておらず、プログラムの実行が異常終了したことを示しています。