当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 raise()用法及代码示例



描述

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