int main();
int main(
int argc // argvで渡される引数の数
[, char *argv[ ] // コマンドライン引数
[, char *envp[ ] // ユーザーの環境で設定された変数を表す文字列の配列 (Microsoft固有)
] ] );
引数定義 | MSDN
| 要素 | 内容 |
|---|---|
| argv[0] | プログラムが起動されるコマンド ※プログラムからプロセスとして起動されることもあるため、実行可能ファイルの名前になるとは限らない |
| argv[1] | 最初のコマンドライン引数 アプリケーションの実行ファイルにファイルがドロップされたときには、そのパスが引数として渡される |
| … | |
| argv[argc-1] | 最後のコマンドライン引数 |
| argv[argc] | NULL |
処理が成功した場合には、ゼロを返すようにします。
引数にワイド文字が渡されることを想定するなら、mainの代わりにwmainを用います。wmain の使用 | Microsoft Learn
int wmain(
int argc
[, wchar_t *argv[ ]
[, wchar_t *envp[ ]
] ] );
int main()
{
return 1;
}
これをsample.exeの名前のバイナリにすると、その終了コードは次のように確認できます。
C:\>sample.exe C:\>echo %ERRORLEVEL% 1
またVisual Studioでのデバッグ時には、出力ウィンドウで「プログラム '[0x**] sample.exe' はコード 1 (0x1) で終了しました。」のように確認できます。
クリーンアップ後に、呼び出しプロセスを終了させられます。
void exit(
int const status // 終了ステータスコード
);
終了、_Exit、_exit | MSDN
statusはmain関数の戻り値と同様に、終了コードとして処理されます。
#include <stdlib.h>
void Func()
{
exit(1);
}
exit()の呼び出しは無条件にプロセスを終了させるため、ライブラリとして提供するようなプログラムでは用いるべきではありません。
| コード | 定数 | 説明 (日本語) | 説明 (英語) |
|---|---|---|---|
| 0 (0x0) | ERROR_SUCCESS | この操作を正しく終了しました。 | The operation completed successfully. |
| 1 (0x1) | ERROR_INVALID_FUNCTION | ファンクションが間違っています。 | Incorrect function. |
| 2 (0x2) | ERROR_FILE_NOT_FOUND | 指定されたファイルが見つかりません。 | The system cannot find the file specified. |
| ︙ | |||
| 160 (0xA0) | ERROR_BAD_ARGUMENTS | 間違った引数があります。 | One or more arguments are not correct. |
| ︙ |