Issue #5613 has been reported by Motohiro KOSAKI. ---------------------------------------- Feature #5613: Signal.termsigname メソッドの追加 http://redmine.ruby-lang.org/issues/5613 Author: Motohiro KOSAKI Status: Open Priority: Normal Assignee: Category: Target version: 現状、$?.termsigでシグナル番号が得られますが番号なんかもらってもちっとも嬉しくなく、 (シグナル番号はポータブルじゃないから)結局 signame = Signal.list.invert[$?.termsig] とやってシグナル名に変換する必要があるように思います。毎回。 ばかばかしいので、 termsignameという文字列を返すメソッドの追加を提案します。
on 2011-11-11 05:22
on 2012-03-27 17:14
Issue #5613 has been updated by mame (Yusuke Endoh). Status changed from Open to Assigned Assignee set to kosaki (Motohiro KOSAKI) パッチ晒して「反対がなければコミットします」って言えばいいんじゃないかと思います。 -- Yusuke Endoh <mame@tsg.ne.jp> ---------------------------------------- Feature #5613: Signal.termsigname メソッドの追加 https://bugs.ruby-lang.org/issues/5613#change-25258 Author: kosaki (Motohiro KOSAKI) Status: Assigned Priority: Normal Assignee: kosaki (Motohiro KOSAKI) Category: Target version: 現状、$?.termsigでシグナル番号が得られますが番号なんかもらってもちっとも嬉しくなく、 (シグナル番号はポータブルじゃないから)結局 signame = Signal.list.invert[$?.termsig] とやってシグナル名に変換する必要があるように思います。毎回。 ばかばかしいので、 termsignameという文字列を返すメソッドの追加を提案します。
on 2012-03-29 01:09
Issue #5613 has been updated by kosaki (Motohiro KOSAKI). 了解しました ---------------------------------------- Feature #5613: Signal.termsigname メソッドの追加 https://bugs.ruby-lang.org/issues/5613#change-25329 Author: kosaki (Motohiro KOSAKI) Status: Assigned Priority: Normal Assignee: kosaki (Motohiro KOSAKI) Category: Target version: 現状、$?.termsigでシグナル番号が得られますが番号なんかもらってもちっとも嬉しくなく、 (シグナル番号はポータブルじゃないから)結局 signame = Signal.list.invert[$?.termsig] とやってシグナル名に変換する必要があるように思います。毎回。 ばかばかしいので、 termsignameという文字列を返すメソッドの追加を提案します。
on 2012-11-08 17:20
Issue #5613 has been updated by kosaki (Motohiro KOSAKI).
File signame.patch added
Category set to core
Target version set to 2.0.0
以下のようなパッチで作ってみました
+ * call-seq:
+ * Signal.signame(signo) -> string
+ *
+ * convert signal number to signal name
+ *
+ * Signal.trap("INT") { |signo| puts Signal.signame(signo) }
+ * Process.kill("INT", 0)
+ *
+ * <em>produces:</em>
+ *
+ * INT
以下のデザインにしました。
・名前は Signal.signame
・インスタンスメソッドではなく、モジュールのメソッド。これはtrapハンドラの引数がsignalオブジェクトではなくsignal
numberが数値で渡ってくるため
・返ってくるのは文字列。高速化したいなら後から文字列キャッシュ入れるだけなのでSymbolにはしなかった
・文字列は SIGINT ではなく INTのようなSIGを除いた形式。これは Signal.list の結果に合わせた
反対がなければコミットしようと思います
----------------------------------------
Feature #5613: Signal.termsigname メソッドの追加
https://bugs.ruby-lang.org/issues/5613#change-32643
Author: kosaki (Motohiro KOSAKI)
Status: Assigned
Priority: Normal
Assignee: kosaki (Motohiro KOSAKI)
Category: core
Target version: 2.0.0
現状、$?.termsigでシグナル番号が得られますが番号なんかもらってもちっとも嬉しくなく、
(シグナル番号はポータブルじゃないから)結局
signame = Signal.list.invert[$?.termsig]
とやってシグナル名に変換する必要があるように思います。毎回。
ばかばかしいので、 termsignameという文字列を返すメソッドの追加を提案します。
on 2012-11-09 03:10
Issue #5613 has been updated by nagachika (Tomoyuki Chikanaga). パッチを拝見しました。 ものすごーく trivial な点で恐縮なのですが char* signame; は char *signame; (アスタリスクの位置を変数名の直前に)のほうが周辺の変数宣言と揃っていて良いかと思います。 ---------------------------------------- Feature #5613: Signal.termsigname メソッドの追加 https://bugs.ruby-lang.org/issues/5613#change-32660 Author: kosaki (Motohiro KOSAKI) Status: Assigned Priority: Normal Assignee: kosaki (Motohiro KOSAKI) Category: core Target version: 2.0.0 現状、$?.termsigでシグナル番号が得られますが番号なんかもらってもちっとも嬉しくなく、 (シグナル番号はポータブルじゃないから)結局 signame = Signal.list.invert[$?.termsig] とやってシグナル名に変換する必要があるように思います。毎回。 ばかばかしいので、 termsignameという文字列を返すメソッドの追加を提案します。
on 2012-11-09 16:47
> $B%Q%C%A$rGR8+$7$^$7$?!#(B > $B$b$N$9$4!<$/(B trivial $B$JE@$G62=L$J$N$G$9$,(B > char* signame; > $B$O(B > char *signame; > ($B%"%9%?%j%9%/$N0LCV$rJQ?tL>$ND>A0$K(B)$B$N$[$&$,<~JU$NJQ?t@k8@$HB7$C$F$$$FNI$$$+$H;W$$$^$9!#(B $B$"$l$(!#$J$s$G$3$3$@$1$:$l$A$c$C$?$s$@$m$&!#D>$7$^$9!#$9$$$^$;$s(B
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.