Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > IOクラス > pwrite

instance method IO#pwrite

pwrite(string, offset) -> Integer[permalink][rdoc]

stringをoffsetの位置にpwrite()システムコールを使って書き込みます。

IO#seekIO#writeの組み合わせと比べて、アトミックな操作になるという点が優れていて、複数スレッド/プロセスから同じIOオブジェクトを様々な位置から読み込むことを許します。どのユーザー空間のIO層のバッファリングもバイパスします。

[PARAM] string:
書き込む文字列を指定します。
[PARAM] offset:
ファイルポインタを変えずに書き込む位置を指定します。
[RETURN]
書き込んだバイト数を返します。
[EXCEPTION] Errno::EXXX:
シークまたは書き込みが失敗した場合に発生します。
[EXCEPTION] NotImplementedError:
システムコールがサポートされていない OS で発生します。


File.open("testfile", "w") do |f|
  f.pwrite("ABCDEF", 3)   # => 6
end

File.read("testfile")     # => "\u0000\u0000\u0000ABCDEF"