「セグメンテーション違反」の版間の差分

削除された内容 追加された内容
Courant (会話 | 投稿記録)
m編集の要約なし
1行目:
'''セグメンテーション違反'''(segmentation([[英語|英]]:segmentation fault, '''segfault'''(セグフォールト)とよく短くされる)略す)は[[ソフトウェア]]の実行時に起きる特定のエラー条件である。
セグメンテーション違反はアクセスが許可されていないメモリ上の位置、もしくは許可されていない方法(例えばリードオンリーの位置へに書き込みをしようとする、もしくはオペレーションシステムの部分を上書きしようとする)でメモリ上の位置にアクセスしようとするときに起こる。[[MC68000]]のようなプロセッサに基づくシステムはこれらのイベントを''アドレスエラー''もしくは''バスエラー''として参照しようとする傾向にある。
 
[[セグメント方式]]は[[メモリ管理]]と[[オペレーティングシステム]]を保護する方法の一つである。大部分の用途のために[[ページング方式]]に置き換えられつつあるが、セグメンテーションの専門用語はまだ多く使用されている。セグメンテーション違反はその一例である。オペレーションシステムの中にはメインメモリ管理の方針としてページング方法が使用されているがいくつかの論理レベルでまだセグメンテーションを持つものがある。
41行目:
セグメンテーション違反が起こる条件とそれらをそれら自身で宣言する方法はオペレーションシステム特有のものである。
 
共通のプログラムエラーは[[ヌル (コンピュータ)|ヌルポインタ]]の[[参照 (情報工学)|参照]]外し(ヌルポインタを通した読み込みもしくは書き込み、アドレス0へのアクセスはC言語で共通に使用され、"存在しないオブジェクトへのポインタ"もしくはエラーインディケータを意味する)であるので、大抵のオペレーションシステムはメモリの最初のページ(0(0アドレスで始まる)をマッピングしてそのページへのアクセスがセグメンテーション違反を引き起こす。
 
== 関連項目 ==