2011年4月3日日曜日

バイナリファイル対応の tail コマンド/ファイルのメモリマッピング

バイナリファイルにも対応した tail コマンドの例題です。

tail コマンドは、ファイルの最終行を表示するものですが、バイナリファイルの場合、改行が含まれないためにファイルの先頭から最後まで表示されてしまったりするため、非常に困ったことになる場合があります。

そこで、折り返すバイト数を指定したり、表示できない文字が含まれる場合には '*' や 16進数で表示したりすることができるようにしています。


ファイルの読み込みには、メモリマッピングを利用しています。

メモリマッピング (メモリマップドファイル: memory mapped file とも呼ばれる) は、ファイルの内容にアクセスする方法で、ファイルをアドレス空間にマップしファイル内容を配列のように扱うことができます。
ファイルサイズが大きいファイルにて読み込みを行う場合には、こちらの方がアクセスが早くなったりする場合があります。

実行結果

0 件のコメント:

コメントを投稿