头文件: #include<csignal> int raise(int sig)
- 作用:
对程序发送信号sig,同时信号处理程序被调用,信号处理程序使用std::signal()函数指定。
如果没有使用std::signal()设置用户自定义的信号处理程序,则信号sig将被忽略或者调用默认的信号处理程序. - 参数:
sig可以是ISO C99 signals:SIGABRT、SIGFPE、SIGILL、SIGINT、SIGSEGV、SIGTERM,或者是操作系统平台特定实现的值。 - 返回值:成功返回0值,失败返回非0值。
#include <csignal>
void signal_handler(int signal) {
std::cout << "Receive signal:" << signal << std::endl;
}
int main(int arc, char *argv[]) {
//注册信号处理程序
std::signal(SIGTERM, signal_handler);
std::cout << "Sending signal:" << SIGTERM << std::endl;
std::raise(SIGTERM);
return 0;
}
参考:https://en.cppreference.com/w/cpp/utility/program/raise