4Gの壁とかあったな

ファイルサーバにおいてあるファイルがいつの間にやら「1」とか「2」とかいうファイルに分割されててなんじゃこりゃとか思ったんだけど、そういえばFAT32って4GBしかないのになんでこんなでっかいISOファイルここに置けたんだっけとむむむとなった。
以前、5,000円で買ったHDDをぶち込むだけでファイルサーバになる箱を使っていたんだけど、こいつがあまりにも酷い代物でファイル名が化けるは、ファイルは消えるはで散々だったので、ディスクを引っこ抜いて古いマシンを使って構築していたファイルサーバに移動して使っていたのでした。
なんかそのあたりでいろいろおかしな事になったんだろうなあ。詳しい原因がよく分からない。そういえばFAT32NTFSに変換しようとして失敗したりもした気がする。早々に新しいHDDを買って整理しなおす必要があるなあ。
てなところで、いつの間に分割されていたファイルを直そうとするが手ごろなソフトも見つからないので、ちょちょいとスクリプト書いて結合する。

file = []
file[0] = ARGV.shift
file[1] = ARGV.shift
output  = ARGV.shift
BUF = 1024 * 1024 * 10
File.open(output, "w") do |out|
	out.binmode
	file.each do |input|
		print input
		File.open(input) do |infile|
			infile.binmode
			while(tmp = infile.read(BUF)) do
				print "*"
				out << tmp
			end
			print "\n"
		end
	end
end

適当に作りすぎていまいち綺麗じゃないが予想以上に高速に動いてる。
ネットワーク越しのファイル扱うときってバッファはどんな感じで持てばいいかがようわからん。