class IO
def close_on_exec!
def close_on_exec! fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) end
def close_on_exec!
def close_on_exec! end
def writev(components)
and whatever else is necessary.
data is written before returning, by performing multiple writev() calls
Unlike the raw writev() system call, this method ensures that all given
way to perform zero-copy I/O.
in order to send the data in a single system call. Thus, #writev is a great
does not require one to concatenate all those strings into a single buffer
descriptor using the +writev()+ system call. Unlike IO#write, this method
Writes all of the strings in the +components+ array into the given file
def writev(components) return PhusionPassenger::NativeSupport.writev(fileno, components) end
def writev2(components, components2)
Like #writev, but accepts two arrays. The data is written in the given order.
def writev2(components, components2) return PhusionPassenger::NativeSupport.writev2(fileno, components, components2) end
def writev3(components, components2, components3)
["another ", "message\n"],
io.writev3(["hello ", "world", "\n"],
Like #writev, but accepts three arrays. The data is written in the given order.
def writev3(components, components2, components3) return PhusionPassenger::NativeSupport.writev3(fileno, components, components2, components3) end