abort
現在のプロセスを中止され、エラー コードを返します。
[!メモ]
テストのまたはデバッグ シナリオを除外 Windows ストア、アプリケーションを終了するには、このメソッドを使用しないでください。Windows ストア アプリケーションを閉じるプログラムまたは UI の方法は、の Windows 8 のアプリケーションの要件の検証セクション 3.6 に従って許可されていません。詳細については、アプリケーションの有効期間 (Windows ストア apps)" "を参照してください。
void abort( void );
戻り値
abort は、呼び出し元プロセスにコントロールを返しません。既定では、現在のプロセスを終了し、3.の終了コードを返します。
解説
既定では、abort ルーチンはメッセージを表示します:
"This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information."
次に、raise(SIGABRT) を呼び出します。SIGABRT シグナル状態に応じて二つのアクションが signal 関数への前の呼び出しのそのシグナル状態に対して定義されているかによって異なります。既定の SIGABRT のアクションは終了コード 3 で終了します。呼び出し元プロセスのためのコントロールを呼び出し元プロセスのオペレーティング システムに返します。abort は、ストリーム バッファーをフラッシュしません atexitし、/_onexit 処理されません。
abort はルーチンを呼び出してしたアプリケーションの種類に基づいてメッセージの出力先を決定します。コンソール アプリケーションは stderrしてメッセージを常に表示されます。単一またはマルチスレッド Windows ベースのアプリケーションでは、abort は [OK] のボタンを使用してメッセージを表示するメッセージ ボックスを作成するように MessageBox Windows の関数を呼び出します。ユーザーが [OK] をクリックすると、プログラムはすぐに中止。メッセージは、適切な引数で _set_abort_behavior を呼び出して抑制できます。
アプリケーションがランタイム ライブラリのデバッグ バージョンとリンクと、abort は 3 個のボタンを含むメッセージ ボックスを作成します: [中止]、[再試行] と [無視]。ユーザーが [中止] をクリックすると、プログラムはすぐに中止。ユーザーが [再試行] をクリックすると、デバッガーが呼び出され、(JIT) の Just-In-Time デバッグが有効になっている場合、ユーザーはプログラムをデバッグできます。ユーザーが [無視] をクリックすると、abort は、通常の実行に従っています: [OK] のボタンを含むメッセージ ボックスの作成。
abort は、エラーを Microsoft に報告するエラー レポート機構を開始します。この動作は _set_abort_behaviorを呼び出して無効にできます。
CRT デバッグの詳細については、CRT のデバッグ技術を参照してください。
必要条件
ルーチン |
必須ヘッダー |
---|---|
abort |
<process.h> か <stdlib.h> |
使用例
次のプログラムは試みに失敗するとファイルを開くと、中止されます。
// crt_abort.c
// compile with: /c
// This program demonstrates the use of
// the abort function by attempting to open a file
// and aborts if the attempt fails.
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
FILE *stream = NULL;
errno_t err = 0;
err = fopen_s(&stream, "NOSUCHF.ILE", "r" );
if ((err != 0) || (stream == NULL))
{
perror( "File could not be opened" );
abort();
}
else
{
fclose( stream );
}
}
同等の .NET Framework 関数
該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。