描述
C庫函數int raise(int sig)引起信號sig要生成。這sig參數與 SIG 宏兼容。
聲明
以下是 signal() 函數的聲明。
int raise(int sig)
參數
sig− 這是要發送的信號編號。以下是幾個重要的標準信號常數 -
不。 | 宏和信號 |
---|---|
1 |
SIGABRT (Signal Abort) 異常終止,例如由 abort 函數發起。 |
2 |
SIGFPE (信號浮點異常)錯誤的算術運算,例如零除或導致溢出的運算(不一定是浮點運算)。 |
3 |
SIGILL (信號非法指令)無效的函數圖像,例如非法指令。這通常是由於代碼損壞或嘗試執行數據所致。 |
4 |
SIGINT (信號中斷)交互式注意信號。通常由應用程序用戶生成。 |
5 |
SIGSEGV (Signal Segmentation Violation) Invalid access to storage - 當程序試圖在內存之外讀取或寫入時,它會被分配給它。 |
6 |
SIGTERM (信號終止)終止請求已發送至程序。 |
返回值
如果成功,此函數返回零,否則返回非零。
示例
下麵的例子展示了 signal() 函數的用法。
#include <signal.h>
#include <stdio.h>
void signal_catchfunc(int);
int main () {
int ret;
ret = signal(SIGINT, signal_catchfunc);
if( ret == SIG_ERR) {
printf("Error:unable to set signal handler.\n");
exit(0);
}
printf("Going to raise a signal\n");
ret = raise(SIGINT);
if( ret !=0 ) {
printf("Error:unable to raise SIGINT signal.\n");
exit(0);
}
printf("Exiting...\n");
return(0);
}
void signal_catchfunc(int signal) {
printf("!! signal caught !!\n");
}
讓我們編譯並運行上述程序以產生以下結果 -
Going to raise a signal !! signal caught !! Exiting...
相關用法
- C語言 rand()用法及代碼示例
- C語言 realloc()用法及代碼示例
- C語言 remove()用法及代碼示例
- C語言 rename()用法及代碼示例
- C語言 rewind()用法及代碼示例
- C語言 宏 assert()用法及代碼示例
- C語言 vprintf()用法及代碼示例
- C語言 宏 va_start()用法及代碼示例
- C語言 setlocale()用法及代碼示例
- C語言 fread()用法及代碼示例
- C語言 sinh()用法及代碼示例
- C語言 宏 offsetof()用法及代碼示例
- C語言 feof()用法及代碼示例
- C語言 scanf()用法及代碼示例
- C語言 imagesize()用法及代碼示例
- C語言 getarcoords()用法及代碼示例
- C語言 isdigit()用法及代碼示例
- C語言 clock()用法及代碼示例
- C語言 strcspn()用法及代碼示例
- C語言 setlinestyle()用法及代碼示例
注:本文由純淨天空篩選整理自 C library function - raise()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。