• 締切済み

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

みんなの回答

  • 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

>不足な情報がございましたらご指摘ください。 例外処理って? シグナルのこと?

himaspo
質問者

補足

すみません。説明不足でした。 無効なメモリアドレスへのアクセスを検出したいのです。

関連するQ&A