teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

誤記訂正

2017/12/21 16:17

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  `ls`コマンドなどでファイルの一覧を表示するとソートされているのでそれが当たり前のように感じますが、大抵の言語の低水準I/Oライブラリーでは「ファイルがどの順番に取得できるかの保証はない」ように思います。それは**OSのシステムコールが~~そもそも順番を保証していない~~物理エントリー順で返す(※)**からだと思います。ソートの順番はアプリケーションによって様々なので逆に下手にソートされてしまうと速度が遅くなるだけであまり益がないという考え方ではないでしょうか。
2
2
 
3
3
  ※訂正:「保証しない」=>「物理エントリー順」に訂正させていただきました。
4
- ご指摘ありがとうございました。>otnさ
4
+ ご指摘ありがとうございました。>otnさ
5
5
 
6
6
  ちなみに`ls`はシステムコールで返されたファイル名を自前でソートしているだけだと思います。
7
7
 

1

補足

2017/12/21 16:17

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -1,5 +1,8 @@
1
- `ls`コマンドなどでファイルの一覧を表示するとソートされているのでそれが当たり前のように感じますが、大抵の言語の低水準I/Oライブラリーでは「ファイルがどの順番に取得できるかの保証はない」ように思います。それはOSのシステムコールがそもそも順番を保証していないからだと思います。ソートの順番はアプリケーションによって様々なので逆に下手にソートされてしまうと速度が遅くなるだけであまり益がないという考え方ではないでしょうか。
1
+ `ls`コマンドなどでファイルの一覧を表示するとソートされているのでそれが当たり前のように感じますが、大抵の言語の低水準I/Oライブラリーでは「ファイルがどの順番に取得できるかの保証はない」ように思います。それは**OSのシステムコールが~~そもそも順番を保証していない~~物理エントリー順で返す(※)**からだと思います。ソートの順番はアプリケーションによって様々なので逆に下手にソートされてしまうと速度が遅くなるだけであまり益がないという考え方ではないでしょうか。
2
2
 
3
+ ※訂正:「保証しない」=>「物理エントリー順」に訂正させていただきました。
4
+ ご指摘ありがとうございました。>otnさn
5
+
3
6
  ちなみに`ls`はシステムコールで返されたファイル名を自前でソートしているだけだと思います。
4
7
 
5
8
  Rubyには暗いので実際にそのような便利なソート機能が何かのオプションにあるのかどうか自分は知らないのですが、例えばよく用いられるであろうdir.globなどは順番の保証がないといった記事を見かけました。