Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > IOクラス > sysseek
sysseek(offset, whence = IO::SEEK_SET) -> Integer
[permalink][rdoc]lseek(2) と同じです。IO#seek では、 IO#sysread, IO#syswrite と併用すると正しく動作しないので代わりにこのメソッドを使います。 位置 offset への移動が成功すれば移動した位置(ファイル先頭からのオフセット)を返します。
書き込み用にバッファリングされた IO に対して実行すると警告が出ます。
File.open("/dev/zero") {|f| buf = f.read(3) f.sysseek(0) } # => -:3:in `sysseek': sysseek for buffered IO (IOError) File.open("/dev/null", "w") {|f| f.print "foo" f.sysseek(0) } # => -:3: warning: sysseek for buffered IO
[SEE_ALSO] IO#seek