目录

int raise(int sig)

描述 (Description)

C库函数int raise(int sig)导致生成信号sigsig参数与SIG宏兼容。

声明 (Declaration)

以下是signal()函数的声明。

int raise(int sig)

参数 (Parameters)

  • sig - 这是要发送的信号编号。 以下是一些重要的标准信号常数 -

Sr.No. 宏观和信号
1

SIGABRT

(信号中止)异常终止,例如由中止功能启动。

2

SIGFPE

(信号浮点异常)错误的算术运算,例如零分频或导致溢出的运算(不一定是浮点运算)。

3

SIGILL

(信号非法指令)无效的功能图像,例如非法指令。 这通常是由于代码中的损坏或尝试执行数据。

4

SIGINT

(信号中断)交互式注意信号。 通常由应用程序用户生成。

5

SIGSEGV

(信号分段违规)对存储的无效访问 - 当程序试图在内存之外读取或写入时,会为其分配。

6

SIGTERM

(信号终止)发送到程序的终止请求。

返回值 (Return Value)

如果成功则该函数返回零,否则返回非零。

例子 (Example)

以下示例显示了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...
↑回到顶部↑
WIKI教程 @2018