abort
現在のプロセスを中止し、エラー コードを返します。
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 は Windows MessageBox 関数を呼び出してメッセージ ボックスを作成し、メッセージと [OK] ボタンを表示します。 ユーザーが [OK] をクリックすると、プログラムはすぐに処理を中止します。 メッセージの出力を抑止するには、適切な引数を使用して _set_abort_behavior を呼び出します。
アプリケーションは、ランタイム ライブラリのデバッグ バージョンとリンクされている場合abortはメッセージ ボックスを 3 つのボタンを作成します。中止、 再試行、および を無視。 [失敗] をクリックすると、プログラムはすぐに処理を中止します。 [再試行] をクリックすると、Just-In-Time (JIT) デバッグが有効な場合は、デバッガーが呼び出されるため、ユーザーはプログラムのデバッグを行うことができます。 ユーザーをクリックした場合無視、abort、通常の実行を続行します。メッセージ ボックスを作成する、**[ok]**ボタン。
abortまた機構の障害の報告をマイクロソフトに報告するエラーを呼び出します。 この機能は、_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 を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。