From: nobu.nakada@... Date: 2003-12-05T23:14:05+09:00 Subject: [ruby-dev:22164] Re: Dir.glob と Shjift_JIS について なかだです。 At Fri, 5 Dec 2003 22:25:16 +0900, H.Yamamoto wrote: > >fnmatchでも**を扱えるようにするというのはいいかもしれませんが、 > >FNM_PATHNAMEって意味は逆じゃありませんでしたっけ。 > > Dir.glob("a*.dat") > > と書いた場合、これは > 「a ではじまり .dat で終わるファイル」と > 「a ではじまるフォルダ以下にある .dat で終わるファイル」の > 2つの意味を含みますよね。 後者は含みません。 > >全然オーバーヘッドを気にしているわけではなくて、ターミネータを > >越えてアクセスしようとするところが、バッファオーバーランを誘発 > >しそうでなんとなく気になってます。 > > でも、(p) + 1 を使うシングルバイト環境では、p == '\0' でも1増えますよね。 > Next() の動作が環境によって異なるのは避けたいです。 > mblen()はターミネータを越える数を返さないだろうし・・・ '\0'を跨いで先に進むところはそこだけじゃないかと思っていたので すが、他にもありましたっけ。 > ベンチマーク上は Next()の呼び出し回数はパスの長さ n に対して O(n*n) のオーダで増えるので、 > パスが長くなるにつれ遅くなるのがわかるんですが、トータルでは確かに微々たる物かも。 > > でも、最適化してみたい気はするなあ。 File.fnmatchとしてはそうなんですが、Dir.globとしてはシステムコー ルのオーバーヘッドのほうがたぶん。まぁいずれにせよ、最適化でき るならそれに越したことはありません。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦