非常教程

C参考手册

编程支持 | Program support

SIG_ERR

在头文件<signal.h>中定义

#define SIG_ERR / *实现定义* /

void(*)(int)类型的值。 当通过信号返回时,表示发生了错误。

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
 
void signal_handler(int signal)
{
    printf("Received signal %d\n", signal);
}
 
int main(void)
{
    /* Install a signal handler. */
    if (signal(SIGTERM, signal_handler) == SIG_ERR)
    {
        printf("Error while installing a signal handler.\n");
        exit(EXIT_FAILURE);
    }
 
    printf("Sending signal %d\n", SIGTERM);
    if (raise(SIGTERM) != 0)
    {
        printf("Error while raising the SIGTERM signal.\n");
        exit(EXIT_FAILURE);
    }
 
    printf("Exit main()\n");
    return EXIT_SUCCESS;
}

输出:

Sending signal 15
Received signal 15
Exit main()

参考

  • C11标准(ISO / IEC 9899:2011):
    • 7.14 / 3信号处理<signal.h>(p:265)
  • C99标准(ISO / IEC 9899:1999):
    • 7.14 / 3信号处理<signal.h>(p:246)
  • C89 / C90标准(ISO / IEC 9899:1990):
    • 4.7信号处理<signal.h>

扩展内容

signal

设置特定信号的信号处理程序(功能)

| SIG_ERR的C ++文档 |

C

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。