Skip to content

Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →

instance method

IO::Buffer#pwrite

(untyped, untyped, untyped) -> untyped
pwrite(io, from, [offset, [length]]) → written length or -errno

Perform one write operation of at most length bytes to io at from from the buffer starting at offset. A short write is a normal result and the IO’s current position is not modified. If an error occurs, return -errno.

If offset is not given, it defaults to zero, i.e. the beginning of the buffer. If length is not given, it defaults to the size of the buffer minus the offset. A zero length is a no-op.

If the from position is beyond the end of the file, the gap will be filled with null (0 value) bytes.

Example
out = File.open('output.txt', File::RDWR) # open for read/write, no truncation
IO::Buffer.for('1234567').pwrite(out, 2, 1, 3)

This leads to 234 (3 bytes, starting from position 1) being written into output.txt, starting from file position 2.

See also #pread #read #or! #readonly? also in 4.0 · 3.4 · 3.3 · 3.2 · 3.1