From: Urabe Shyouhei Date: 2008-07-21T18:45:52+09:00 Subject: [ruby-dev:35621] Re: [request]C APIの拡張 卜部です。 Goro Fuji さんは書きました: > 卜部さん > > snprintf()のバッファサイズを決定するのが,私にとってはわりと面倒な作業であり,またRubyソースコード中で用いられる値が様々であることから,この「面倒くささ」はわりと普遍なのではないかと思いました。実装しているときに「面倒くさい」と思うことは,第三者(や,数ヵ月後の自分)にとっては「理解しにくい」ということになりがちなような気がします。「妥当性の検証が難しい」という言葉はそういう意味で使用しました。 > 分かりました。過去はともかく、今なら「悩んだらrb_sprintf使っとけ」くらい の逃げかたでおおむねいいんじゃないかと思うので、特にnewf系が採用されたと してどのくらい使われるかは謎かもしれません。まあそちらは提案の本筋ではな かったようですが。 > ところで名前ですが,rb_append_(v)sprintf()は分かりにくいように思います。第一引数がStringなのでrb_str_*で始まる方が自然で覚えやすい(ので,使いやすい・使われやすい)のではないかと思いますがいかがでしょうか。しかしそうなるとrb_str_append_(v)sprintf()となりさすがに長すぎるようにも思いますが。 んー、たとえば同様な処理を持つ他のプロジェクトはどうなってるんだろうと 思ってNetBSDのsyslog(3)を読んでみましたが、snprintf で泥臭く実装してあり ました。残念。