首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Linux C++中捕获系统级异常?

在 Linux C++ 中捕获系统级异常,可以使用 signal.h 库中的信号处理函数。以下是一个简单的示例:

代码语言:cpp
复制
#include<iostream>
#include <csignal>
#include <cstdlib>
#include <cstring>

void signal_handler(int sig) {
    std::cout << "捕获到信号: "<< sig<< std::endl;
    exit(1);
}

int main() {
    // 注册信号处理器
    signal(SIGSEGV, signal_handler); // 捕获段错误
    signal(SIGINT, signal_handler); // 捕获 Ctrl+C
    signal(SIGTERM, signal_handler); // 捕获终止信号

    // 触发一个段错误
    int* ptr = nullptr;
    *ptr = 10;

    return 0;
}

在这个示例中,我们使用 signal() 函数注册了三个信号处理器,分别用于捕获段错误(SIGSEGV)、Ctrl+C(SIGINT)和终止信号(SIGTERM)。当这些信号触发时,程序将调用 signal_handler() 函数。在这个函数中,我们可以执行任何我们需要的操作,例如记录错误信息、清理资源等。在这个示例中,我们只是简单地输出捕获到的信号,并退出程序。

需要注意的是,信号处理器可能会干扰程序的正常执行,因此应该谨慎使用。在处理信号时,应该尽量保证程序的稳定性和安全性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券