Windows上每个进程的信号处理

时间:2015-12-07 09:57:05

标签: c++ c++11 posix

在我的C ++应用程序中,我需要捕获信号SIGSEGV,所以在Linux上它很容易,但在Windows上我有一个问题:来自另一个线程的信号没有被处理程序捕获。 / p>

#include <signal.h>
#include <iostream>
#include <thread>

void setPosixSignalHandler() {
    signal(SIGSEGV, [&](int sig) {
        std::cout << "Received SIGSEGV" << std::endl;
        exit(EXIT_FAILURE);
    });
}

void f() {
    raise(SIGSEGV);
}

int main() {
    setPosixSignalHandler();

    std::thread t(f);
    t.join();

    return 0;
}

如果我删除多线程而不是像魅力一样工作。 是否可以为所有线程设置单个处理程序?

我正在使用MinGW64。

0 个答案:

没有答案