Ruby 4.1 リファレンスマニュアル

singleton method IO::Buffer.new

new(size = IO::Buffer::DEFAULT_SIZE, flags = 0) -> IO::BufferRuby 3.1 から[permalink][rdoc][edit]

size バイトの、0 で埋められた新しいバッファを作成して返します。

既定では内部(internal)バッファ、すなわち Ruby が直接確保したメモリ領域になります。ただし size が OS 依存の IO::Buffer::PAGE_SIZE 以上の場合は、仮想メモリ機構(Unix では匿名 mmap、Windows では VirtualAlloc)を用いて確保されます。flags に IO::Buffer::MAPPED を指定すると、 size によらず後者の方法で確保されます。

[PARAM] size:
確保するバッファのバイト数を整数で指定します。省略した場合は IO::Buffer::DEFAULT_SIZE になります。
[PARAM] flags:
バッファの確保方法を IO::Buffer::MAPPED などの定数で指定します。
buf = IO::Buffer.new(4)
p buf.size       # => 4
p buf.internal?  # => true
p buf.get_string # => "\x00\x00\x00\x00"