Guard: 信号捕获在 Windows 上不起作用

创建于 2011-05-06  ·  3评论  ·  资料来源: guard/guard

正如这里这里所讨论的

最有用的评论

大声笑,这是受支持信号的完整列表,并记录了解决其余问题的

所有3条评论

你的意思是告诉我,一个历史几乎完全与 unix 脱节的操作系统没有遵守 unix 派生操作系统之间的互操作性规范? 是的,不,这听起来是对的。 ;)

据我所知, Posix 信号在 Windows 下通常不可用。 确实存在一个带有各种 POSIX API 子集的官方支持的子系统,但显然只有当您购买 vista/win7 的企业版或终极版时才可用。 这包括编写支持 POSIX 信号(但不自动支持它们)的软件的能力。 地狱,企业Windows unix ......事情......甚至有一个针对它的旧的且看似未维护的debian端口。 怎么这么恐怖?

无论如何,跳回红宝石。 初始移植是使用 cygwin 完成的。 Cygwin 是一个绝对庞大的 POSIX 和通用 UNIX 兼容层,它牺牲了性能、运行时大小和功能作为兼容性成本。 然而,它确实在其他敌对领域提供了绝对丰富的 unix 舒适感。 只要您使用基于 cygwin 的 ruby​​,如果信号捕获在 Windows 中工作得很好,我至少不会感到惊讶。

最初的windows一键安装程序使用了visual studio 6,这是恐龙古代。 当前的 Windows 一键安装程序使用了 mingw 和 msys。 两者都不支持 posix 信号,但我不知道更多。 一看,看到一个“gcc.bat”和“make.bat”,心里很难过。

顺便说一句,ISO C99 确实定义了实现者需要支持的少量非 posix 信号,但唯一可以通过退出处理程序捕获的两个信号是 SIGINT 和 SIGTERM(至少根据规范,我们都知道如何微软非常喜欢遵守标准)。

大声笑,这是受支持信号的完整列表,并记录了解决其余问题的

感谢您的研究,我认为我们需要找到一种解决方法并跳过 Windows 上的信号 :)

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

jonmchan picture jonmchan  ·  16评论

greyblake picture greyblake  ·  18评论

mockdeep picture mockdeep  ·  23评论

Odaeus picture Odaeus  ·  21评论

lastobelus picture lastobelus  ·  5评论