ruby の現在の位置から 2 バイト後方にシークしようとしています。次のコードは、前の行末を見つけようとします。
1.9.3-p448 :003 > while file.getc != '\n'
1.9.3-p448 :004?> file.seek(-2,IO::SEEK_CUR)
1.9.3-p448 :005?> end
Errno::EINVAL: Invalid argument - test
from (irb):4:in `seek'
from (irb):4
from /usr/local/rvm/rubies/ruby-1.9.3-p448/bin/irb:16:in `<main>'
なぜこのエラーが発生するのか理解できません。ループの外側を完全に探します (同じステートメント)。test はファイル名です。