From: matz@... (Yukihiro Matsumoto) Date: 2003-12-30T11:22:25+09:00 Subject: [ruby-dev:22453] Re: Dir.glob とShjift_JIS について まつもと ゆきひろです In message "[ruby-dev:22452] Re: Dir.glob とShjift_JIS について" on 03/12/30, H.Yamamoto writes: |すみません、1.8.1に対してです。 あれ、当たらなかったような。もういちどdir.cをまっさらにして やり直してみます。 |>|ようやく完成品といえるようなパッチになったと思っています。 | |これは取り消します・・・・。また問題がありました。 | |glob_helperのreaddirループの中で、 | |else if (m[1] == '\0' && is_dir == ok) { /* *m == '/' */ | |としてますが、ブロック実行中にディレクトリが削除されたりすると、 |存在しないパスがブロックに渡されてしまいます。難しい・・・ | |でも、win32\win32.cの実装も、opendirの後にエントリを削除したら |似た問題が生じるので、dir.cでも気にする必要ないのでしょうか? |それなら、もっと簡単にdir.cを実装できると思いますが・・・ 繰り返しの最中にファイルが削除・追加された場合の挙動は未定義 ではないかと。ということは、落ちたりしなければ実装者の都合の 良いように作ってよいように思います。もっともその前にほんとう に未定義かどうか確認する必要がありますが。