class ChildProcess::Unix::PosixSpawnProcess::Argv

Public Class Methods

new(args) click to toggle source
# File lib/childprocess/unix/posix_spawn_process.rb, line 89
def initialize(args)
  @ptrs = args.map do |e|
    if e.include?("\0")
      raise ArgumentError, "argument cannot contain null bytes: #{e.inspect}"
    end

    FFI::MemoryPointer.from_string(e.to_s)
  end

  @ptrs << FFI::Pointer.new(0)
end

Public Instance Methods

to_ptr() click to toggle source
# File lib/childprocess/unix/posix_spawn_process.rb, line 101
def to_ptr
  argv = FFI::MemoryPointer.new(:pointer, @ptrs.size)
  argv.put_array_of_pointer(0, @ptrs)

  argv
end