複製鏈接
請複製以下鏈接發送給好友

SIGSEGV

鎖定
SIGSEGV,計算機術語。
中文名
SIGSEGV
外文名
segmentationviolation
性    質
符號常量
類    型
計算機術語

目錄

SIGSEGV簡介

POSIX兼容的平台上,SIGSEGV是當一個進程執行了一個無效的內存引用,或發生段錯誤時發送給它的信號。SIGSEGV的符號常量頭文件signal.h中定義。因為在不同平台上,信號數字可能變化,因此符號信號名被使用。通常,它是信號#11。

SIGSEGV語源

SIG是信號名的通用前綴。SEGVsegmentationviolation(段違例)的縮寫。

SIGSEGV使用

對於不正確的內存處理,計算機程序可能拋出SIGSEGV。操作系統可能使用信號棧向一個處於自然狀態應用程序通告錯誤,由此,開發者可以使用它來調試程序或處理錯誤。
在一個程序接收到SIGSEGV時的默認動作是異常終止。這個動作也許會結束進程,但是可能生成一個核心文件以幫助調試,或者執行一些其他特定於某些平台的動作。例如,使用了grsecurity補丁的Linux系統可能記錄SIGSEGV信號以監視可能的使用緩存溢出的攻擊嘗試。
SIGSEGV可以被捕獲。也就是説,應用程序可以請求它們想要的動作,以替代默認發生的動作。這樣的動作可以是忽略它、調用一個函數,或恢復默認的動作。在一些情形下,忽略SIGSEGV導致未定義的行為。
一個應用程序可能處理SIGSEGV的例子是調試器,它可能檢查信號棧並通知開發者目前所發生的,以及程序終止的位置。
SIGSEGV通常由操作系統生成,但是有適當權限的用户可以在需要時使用kill系統調用或kill命令(一個用户級程序,或者一個shell內建命令)來向一個進程發送信號。