みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

readdir()で得られるファイル・ディレクトリ情報の順番は?

Perlプログラムにて、

 opendir(DIR, '.');
 @dir_list = readdir(DIR);
 closedir(DIR);

などとすると、そのディレクトリにあるファイルとディレクトリの一覧情報を得ることができますが、この場合、@dir_list にはどのような順番で情報が格納されるのでしょうか?

readdir() 関数の仕様が知りたいです。ご存知の方、ぜひ教えてください。

投稿日時 - 2003-05-26 13:36:11

QNo.557850

困ってます

質問者が選んだベストアンサー

仕様という意味ではこちらになるでしょうね。
公式サイトですから。
http://www.perl.com/doc/manual/html/pod/perlfunc/readdir.html

同じような疑問を持たれた方がおられるようなので、載せておきます。
http://www.computing.net/programming/wwwboard/forum/4535.html

ここではファイルシステム依存ということになっていましたが、公式サイトには順番についての記述はありませんでした。

したがって、
> どのような順番で情報が格納されるのでしょうか?
の答えは「決まっていない」になりますね。
処理系依存ということでしょう。

どんな環境でも同じ結果が欲しいというのであれば、@dir_listに対してsortをかけるしかないと思います。

参考URL:http://www.perl.com/doc/manual/html/pod/perlfunc/readdir.html

投稿日時 - 2003-05-27 02:02:29

お礼

素晴らしいアドバイス、ありがとうございます。ご紹介いただいたサイト、見せていただきました。とっても参考になりました!

>答えは「決まっていない」になりますね。
>処理系依存ということでしょう。

なるほど、そういうことでしたか…。それでこういったコードの例文を見ると、@dir_listをいったんソートしているものが多いんですね。

ほんとに助かりました。ありがとうございます(^^)!

投稿日時 - 2003-05-27 07:02:08

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

そんなんやってみればいいじゃん。
Perlのスクリプティングホストの種類とか
バージョンによっても違うんじゃない?
こうはなったけども

.
..
02jXVhQo.C
06B3babN.6
098hSVk6.Z
0A4jAI0d.h
0ckAL0nN.I
0Gh8YPdf.B
0jhFZM1W.M
0kR3589m.P
0NIVBe1e.M
0Thk4emT.a
1.c
10PHP4kW.W
11cUYISZ.Y
17UlecTe.l
19Fg1eLd.o
1dCkN4RD.f
1fJDifWh.0
1fNkP1Ho.B
1glmH3DV.4
1Gpf0WiM.N
1HhVoZIL.l
1IchCFjl.B
1INVG2b7.T
1iSPnQ6d.c
1K6dCXdb.3
1NgbaMa8.a
1odMNBB8.l
1Oi5XfIW.A
1OJUOpNj.D
1oLgcFbI.6
1P3R4B0I.D
1PoWeV5G.Y
1RlMIlPg.h
1SU9c1ZM.h
1Tb1oPQZ.h
20WKONpJ.e
20ZjmAcM.P
24inWajk.2
2bY5kcYH.M
2ciffQcX.j
2dXRVjom.b
2E5GWSg0.0
2hG5bhnb.R
2HHA3CLj.6
2jO5gZb3.l
2KffUlCG.K
2lKOgnho.e
2lnAcdMT.l
2lWDMoRV.C
2neMJEe5.O
2oPgU0gk.p
2Q01LP0c.9
2ReEXN9l.H
2SA3li6E.P
2Xnc4XFi.6
2YGa37d3.R
303VkQUb.6
36OOkU9b.n
3ec22mT7.i
3FBJpIjW.N
3gX2VfcP.W
3I3HJ2Xa.d
3i95EdO5.T
3k6pcaj7.p
3l7FbnE9.b
3m8iiXfa.R
3MbjZ38S.2
3MLHUfVR.F
3mlXWVDh.l
3naUM0e9.J
3NTpPciD.c

投稿日時 - 2003-05-26 14:09:05

お礼

>そんなんやってみればいいじゃん。

ある環境で試してみると、結果から答えは推測できますが、正しいという確証が得られないですよね。なので仕様を質問しました。
readdir()の仕様として、「opendir でオープンしたディレクトリハンドルから、ディレクトリエントリを読む。」ぐらいしか検索では見つけられず。

一例、ありがとうございました。参考になります。

投稿日時 - 2003-05-26 14:19:23

あなたにオススメの質問