如果我尝试使用pack('L')
将压缩字节作为无符号int32写入文件,则数字10
将写为五个字节。对于任何其他数字,我得到了正常的行为。
我写了简单的脚本:
x = 0
while x < 100 do
puts "\nTesting %s..." % [x]
h = [x].pack('L')
puts "h length: %s" % [h.length]
f = File.open('tmp', 'w')
f.write h
puts "position: %s" % [f.pos]
x += 1
end
并获得this result;查看迭代编号10。
我的错误在哪里?
Ruby版本:ruby 1.9.3p327(2012-11-10)[i386-mingw32]
答案 0 :(得分:4)
这是换行符(特定于Windows):字节10转换为CR + LF。
我不知道红宝石,但open
与wb
代替w
可能会有所帮助。