描述
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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。