C99に対応した標準Cライブラリの実装レポートを行っていきます。

プロフィール 

Author:高木信尚

ホームページ
ブログ

最近の記事 

最近のコメント 

最近のトラックバック 

月別アーカイブ 

カテゴリー 

ブロとも申請フォーム 

この人とブロともになる

ホーム 全記事一覧 << 前の記事 次の記事 >>

 

2008/10/07 11:42|

 

abort関数はプログラムを異常終了させるためのものです。「プログラムの終了」という処理の具体的な動作が実行環境に依存するため、必然的にabort関数の動作も実行環境に強く依存します。

今回は余り深く考えず、実行環境であるTOPPERS/JSPカーネルのターゲット依存部で定義されるkernel_abort関数を使用することにしました。

#include <signal.h>

void abort(void)
{
  raise(SIGABRT);
  kernel_abort();
}

ご覧の通り、abort関数では、プログラムを終了させる前にSIGABRTシグナルを発生させます。したがって、SIGABRTのシグナル処理ルーチンから、longjmpなどの方法で脱出するか、ext_tskでタスクを終了させてしまえば、プログラムは終了しなくなります。


2006/05/24 01:10|一般ユーティリティTB:0CM:0

コメント
コメントの投稿

管理者にだけ表示を許可する


トラックバック
トラックバックURLはこちら
http://libc.blog47.fc2.com/tb.php/59-b16c1f46

ホーム 全記事一覧 << 前の記事 次の記事 >>

ブログ内検索 

お勧め書籍 

RSSフィード 

リンク 

このブログをリンクに追加する

Powered By FC2ブログ 

Powered By FC2ブログ
ブログやるならFC2ブログ

Copyright(C) 2006 TAKAGI Nobuhisa All rights reserved.
Powered by FC2ブログ. 無料ホームページ アフィリエイト レンタルサーバー FC2ブログ 一戸建て template designed by 遥かなるわらしべ長者への挑戦.