Guard: シグナルトラッピングがWindowsで機能しない

作成日 2011年05月06日  ·  3コメント  ·  ソース: guard/guard

最も参考になるコメント

笑、これがサポートされているシグナルの完全なリストと、残りを回避するための文書化されたベストプラクティスです。 楽しむ! ^ _ ^;

全てのコメント3件

UNIXから派生したオペレーティングシステム間の相互運用性の仕様は、UNIXからほぼ完全に切り離された歴史を持つオペレーティングシステムによって順守されていないということですか? ええ、いや、それは正しいように聞こえます。 ;)

私の知る限り、 PosixSignalsは一般的にウィンドウの下では利用できません。 POSIX APIのさまざまなサブセットを備えた公式にサポートされているサブシステムが存在しますが、明らかに、エンタープライズバージョンまたは究極のバージョンのvista / win7を購入した場合に限ります。 これには、POSIX信号をサポートするソフトウェアを作成する機能が含まれます(ただし、POSIX信号の自動サポートは含まれません)。 地獄、エンタープライズウィンドウズunix ...事...それを対象とするdebianの古くて一見メンテナンスされていない

とにかく、ルビーに戻ってジャンプします。 最初の移植はcygwinを使用して行われました。 Cygwinは、互換性のコストとしてパフォーマンス、ランタイムサイズ、および機能を犠牲にする、非常に大規模なPOSIXおよび一般的なUNIX互換性レイヤーです。 しかし、それ以外の場合は敵対的な領域で、UNIXの快適さの絶対的な富を提供します。 cygwinベースのルビーを使用している限り、Windowsでシグナルトラッピングが問題なく機能したとしても、少なくとも私は驚かないでしょう。

オリジナルのウィンドウズワンクリックインストーラーは、恐竜の古代であるビジュアルスタジオ6を利用していました。 現在のWindowsワンクリックインストーラーはmingwとmsysを利用しています。 どちらもposixシグナルをサポートしませんが、それ以上のことはわかりません。 一目見て「gcc.bat」と「make.bat」を見て、とても悲しくなりました。

余談ですが、ISO C99は、実装者がサポートする必要のある少数の非POSIXシグナルを定義していますが、出口ハンドラーを介してキャッチできるのはSIGINTとSIGTERMの2つだけです(少なくとも仕様によれば、私たちは皆、その方法を知っています)。多くのマイクロソフトは標準に準拠するのが大好きです)。

笑、これがサポートされているシグナルの完全なリストと、残りを回避するための文書化されたベストプラクティスです。 楽しむ! ^ _ ^;

調査していただきありがとうございます。回避策を見つけて、WindowsのSignalsをスキップする必要があると思います:)

このページは役に立ちましたか?
0 / 5 - 0 評価