背景
大きなサイズのファイルを分割して送信するファイル送信プログラムを書き,ファイル分割が正確に行われているかを確認するために適当なファイルを作成することにした.
ファイル送信プログラム自体は、分割されたファイル (ブロック) を送信し,受信側では全てのブロックを受信するとブロックを合成して分割前のファイルを作成できる仕組みである.
ファイル作成
ファイル作成コマンドは mkfile,touch,dd などあるがそれらでは中身にランダムな文字列が含まれないため,ブロックの順番が正しいかを確認することはできないと考えた.そこでランダムな文字列を含むファイルを作成する手段はないかと調べた.
乱数を含んだファイルの作成
/dev/urandom という Unix系オペレーティングシステム (OS) における擬似デバイスの一種を発見した.それは乱数生成器として機能するというなんとも便利なものだ.そこでこれを使用してファイルを生成した.生成してくれた乱数をファイルにするために head コマンドを使用した.
head -c {文字数} /dev/urandom > {filename}
これで任意のサイズのファイルを作成できた.
ファイル比較
比較には diff,cmp などがある.diff は行ごとに,cmp は byte ごとに比較を実行してくれるらしい.これらのコマンドを活用して比較できることがわかった。