ELF、画像などのファイルタイプを示す一連のマジック バイトと一致しない場合にのみ、grep や file などのツールを組み合わせてファイル内のものを条件付きで grep しようとするディレクトリ ツリー スキャン関数を D で作成しています。
ファイル io の最小化に関して、このような除外ロジックを可能な限り高速に実行するための最良のアプローチは何ですか? 最初にいくつかのマジック バイトを読み取るだけでよい場合は、通常、ファイル全体を読み取りたくありません。ただし、コードをより一般的なものにするために (一部の魔法は最後または最初以外の場所にある可能性があります)、mmap のようなインターフェイスを使用して、ディスクからデータを遅延取得する場合にのみ、ディスクからデータを遅延取得できると便利です。読んだ。配列インターフェイスは、私のアルゴリズムも簡素化します。
この場合、 Dstd.mmfile
が最適なオプションですか?
更新: この投稿によると、mmap が推奨されていると思います: http://forum.dlang.org/thread/dlrwzrydzjusjlowavuc@forum.dlang.org
配列 (opIndex) としての読み取りアクセスのみが必要な場合、std.mmfile
overstd.stdio.File
またはを使用することの短所はありますかstd.file
?