|
|
|
| 2008/10/07 11:43||▲
|
|
|
_Exit関数はC99で追加された関数で、exit関数と同様、プログラムを終了させるためのものですが、atexit関数で登録した終了時関数の呼び出しを行わないなどの違いがあります。kernel_exit関数を使ってしまうと、call_atexit関数が呼び出されてしまうため、今回は別に実装することにします。
#include <t_services.h> #include <t_config.h>
extern BOOL _kernel_iniflg
void _Exit(int status) { if (_kernel_iniflg) { loc_cpu(); _kernel_iniflg = FALSE; } cpu_terminate(); sys_exit(); }
_kernel_iniflgは、vsns_iniサービスコールのための大域変数で、vsns_iniとは論理が逆になります。今回は、_kernel_iniflgをFALSEに設定する必要があるため、直接操作しています。このように、実行環境に密接にかかわる処理は、OSに対して完全に外付けにするのは困難です。
|
| 2006/05/24 08:09|一般ユーティリティ|TB:0|CM:0|▲
|
|
|
コメント
|
|
コメントの投稿
|
|
|
|
|
トラックバック
|
トラックバックURLはこちら
http://libc.blog47.fc2.com/tb.php/62-5afbe240
|
|
|
|
|
ホーム
全記事一覧
<< 前の記事
次の記事 >>
|