x レコードを含むファイルがあるとします。1 つの「ブロック」には m 個のレコードが保持されます。ファイル内のブロックの総数 n=x/m。1 つのレコードのサイズ、たとえば b バイト (1 つのブロックのサイズ = b*m) がわかっている場合、システム コマンド read() を使用して一度に完全なブロックを読み取ることができます (他の方法はありますか?)。さて、このブロックから各レコードを読み取り、各レコードを個別の要素としてベクトルに入れるにはどうすればよいでしょうか。
そもそもこれを行いたい理由は、ディスク I/O 操作を減らすためです。私が学んだことによると、ディスク i/o 操作ははるかに高価です。それとも、ブロックごとに読み取るのではなく、ファイルからレコードごとに読み取り、直接ベクトルに入れるのと同じ時間がかかりますか? ブロックごとに読み取ると、n 個のディスク I/O しかありませんが、レコードごとに読み取ると x I/O になります。
ありがとう。