exit()
関数によって返される番号であるプログラムの終了ステータスを取得する必要がある状況になりました。
LINUXでは、$?
コマンドを使用してステータスを取得しました。Windowsでも機能するこのステータスを取得する他の方法はありますか?
私が気付いたもう1つのことは、exit()
関数に負の数を渡すと、IDEがクラッシュ$?
し、この場合もコマンドがステータスを表示できないことです。関数をチェックexit()
したところ、その参照には整数を渡すことができると書かれています。
プログラムの戻り値は、オペレーティングシステムごとに異なる意味を持ちます。Unix-yシステムでは、値0〜255のみが有効です(1つの符号なしバイト)。これは負の値が許可されていないことを意味し、IDEの問題の原因である可能性があることに注意してください。FreeBSDはに特定の意味をたくさん導入しましたsysexits.h
。これは私が使用したLinuxディストリビューションには確かに存在しますが、実際に広く受け入れられているのは0
成功と0
失敗以外の唯一のものです。Pete Becker
指摘されているように、EXIT_SUCCESS
はEXIT_FAILURE
標準で定義されたマクロです(それぞれ0
、1
Unix-yプラットフォームでは、実装が定義されています)。
Windowsでは、32ビットの符号付き整数を取得します(負の値は許可されますが、意味があるかどうかはわかりません)。繰り返し0
ますが、成功であり、他の値はさまざまなことを意味します。のように、コンソールで最後のプログラムの終了コードを確認するためにecho $?
使用できます。echo %errorlevel%
N3337
また、私の(C ++ 11標準に非常に近いドラフト)は次のように言っていることに注意してくださいsection 3.6.1 paragraph 5
:
main
ステートメントに遭遇せずに制御が終了した場合return
、その効果は実行の効果です。return 0;