位置:首页 > 高级语言 > C语言标准库 > raise() - C函数

raise() - C函数

C库函数 int raise(int sig) ,导致信号sig产生。sig 参数是与sig 宏兼容。

声明

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

int raise(int sig)

参数

  • sig -- 这是信号发送。以下是几个重要的标准信号常数:

macro 信号
SIGABRT (信号中止)异常终止,如发起abort函数。
SIGFPE (信号浮点异常)的算术运算错误,如除以零或操作导致溢出(不一定是用浮点运算)。
SIGILL (信号非法指令)无效的函数图像,如非法指令。这一般是由于在代码中的腐败或试图执行数据。
SIGINT (信号中断)交互式注意信号。一般所产生的应用程序的用户。
SIGSEGV (信号分割冲突)无效的存储访问:当程序尝试读取或写入内存外它是为其分配的。
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.
");
      exit(0);
   }
   printf("Going to raise a signal
");
   ret = raise(SIGINT);
   if( ret !=0 ) 
   {
      printf("Error: unable to raise SIGINT signal.
");
      exit(0);
   }

   printf("Exiting...
");
   return(0);
}

void signal_catchfunc(int signal)
{
   printf("!! signal caught !!
");
}

让我们编译和运行上面的程序,这将产生以下结果:

Going to raise a signal
!! signal caught !!
Exiting...