- 締切済み
C言語での例外処理の検出方法とは?
下記Linux環境にて、C言語で例外処理を検出したいのですが 何か方法は有りますでしょうか? 回答するにあたり、不足な情報がございましたらご指摘ください。 環境&コンパイラ RedHat 7.3 2.96-110 Kernel 2.4.18-3 on an i686 gcc 2.96 GNU Make 3.79.1
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- aris-wiz
- ベストアンサー率38% (96/252)
回答No.3
>独自にガベージコレクトを実装して例外を作り出すしかない と書きましたが、少し調べたところNo1さんが少し触れていますが、 Unix系OSでは代替シグナルハンドラで制御できるようです。 #アクセス違反かスタックオーバフローか区別がいるみたいですが http://www.nminoru.jp/~nminoru/programming/stackoverflow_handling.html
- aris-wiz
- ベストアンサー率38% (96/252)
回答No.2
>無効なメモリアドレスへのアクセスを検出したいのです。 C言語には例外(例外ハンドラ)という概念は存在しません。 OSレベルでこのような例外処理が実装されている必要があります。 (もしくは例外ハンドラの登録できるAPI) #例えばWindowsであれば、SetUnhandledExceptionFilterという #独自の例外ハンドラを設定できる関数などが存在します。 C言語では例外処理を擬似的にマクロで実装できますが、 今回のようにアクセス違反などを調べるには独自にガベージコレクト を実装して例外を作り出すしかないのでは無いように思います。
- koko_u_
- ベストアンサー率18% (459/2509)
回答No.1
>不足な情報がございましたらご指摘ください。 例外処理って? シグナルのこと?
補足
すみません。説明不足でした。 無効なメモリアドレスへのアクセスを検出したいのです。