From: nobu.nakada@... Date: 2002-08-29T00:41:11+09:00 Subject: [ruby-dev:18095] Re: Win32 signal, process etc なかだです。 At Wed, 28 Aug 2002 21:08:03 +0900, U.Nakamura wrote: > > SIGBREAKというのはCTRL_BREAK_EVENTを送られたときだと思いますが、 > > あらたに定数を追加するよりは既存のシグナルに対応させてしまいた > > い感じ。 > > SIGINTと一緒でいいんじゃないかと思ったりするのですが、どうで > しょうね。 そもそもCtrl+Breakって何するもんなんでしょうか。試しにやってみ たら、いきなりcygwinもエクスプローラもハングしてしまいました。 > シグナルに関しては、MSVCRTのソースではwinsig.cとwinxfltr.cあ > たりが肝のようです。 winxfltr.cというのは見たことがありませんでした。特権命令とか使 うとSIGILL? > VC++のヘルプを参照しつつ、軽く流し読みしたところでは、 > SIGINT [Ctrl+C] > SIGILL CPU例外 ※ヘルプでは「生成されない」とある > SIGFPE CPU例外 > SIGSEGV CPU例外 ※ヘルプでは「生成されない」とある > SIGTERM 発生要因なし ※ヘルプでは「生成されない」とある > SIGBREAK [Ctrl+Break] ※ヘルプでは言及なし > SIGABRT abort()とか_assert()とか > のように見えます。 適当に割り当ててみると、こんなところでしょうか。 SIGINT = CTRL_C_EVENT SIGQUIT = CTRL_BREAK_EVENT ? SIGHUP = CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT ??? SIGTERM = CTRL_SHUTDOWN_EVENT ?? -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦