gpt4 book ai didi

c - 移植到mingw时如何处理 "SIGQUIT"信号?

转载 作者:太空狗 更新时间:2023-10-29 14:59:09 25 4
gpt4 key购买 nike

我正在尝试将一些 C 软件移植到 win32,但我不知道如何处理 SIGQUIT 信号。我检查了 Mingw 的 signal.h,它不支持 SIGQUIT(或 SIGHUP 就此而言,但我假设我可以忽略那个)。

多次出现,举个例子:

switch (sig) {
case SIGHUP:
case SIGINT:
case SIGTERM:
case SIGQUIT: {
/*
// Bunch of code here removed
*/
exit(0);
break;
}
}

有什么建议吗?

最佳答案

Windows 仅支持 a small range of signals .不支持 SIGQUIT。 mingw 只是采用了 Microsoft 的定义。

我只是在使用它之前检查它是否被定义:

switch (sig) {
case SIGINT:
case SIGTERM:
#ifdef SIGHUP
case SIGHUP:
#endif
#ifdef SIGQUIT
case SIGQUIT:
#endif
{
/* ... */
}
}

当然,您也可以检查 _WIN32,它总是在常见的 Windows 预处理器中定义,或者 __MINGW32__,它总是在使用 mingw 预处理器时定义。不要被这些名称中的“32”弄糊涂了:在为 64 位 Windows 编译时,它们也会被定义。

关于c - 移植到mingw时如何处理 "SIGQUIT"信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18281008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com