raise

< c‎ | program
定义于头文件 <signal.h>
int raise( int sig );

发送 sig 给程序。调用以 signal() 指定的信号处理函数。

若仍未用 signal() 设置用户定义的信号处理策略,则忽略信号还是调用默认处理函数是实现定义的。

参数

sig - 要发送的信号。能为实现定义值或下列值之一:
定义信号类型
(宏常量)


返回值

成功时为 0 ,失败时为非零。

示例

#include <signal.h>
#include <stdio.h>
 
void signal_handler(int signal)
{
    printf("Received signal %d\n", signal);
}
 
int main(void)
{
    // 安装信号处理函数。
    signal(SIGTERM, signal_handler);
 
    printf("Sending signal %d\n", SIGTERM);
    raise(SIGTERM);
    printf("Exit main()\n");
}

输出:

Sending signal 15
Received signal 15
Exit main()

引用

  • C11 standard (ISO/IEC 9899:2011):
  • 7.14.2.1 The raise function (p: 267)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.14.2.1 The raise function (p: 248)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.7.2.1 The raise function

参阅

为特定的信号设置信号处理函数
(函数)