names=write_nonblock
visibility=public
kind=defined

--- write_nonblock(string)    -> Integer

IO をノンブロッキングモードに設定し、string を [[man:write(2)]] システムコールで書き出します。

write(2) が成功した場合、書き込んだ長さを返します。
EAGAIN, EINTR などは例外 [[c:Errno::EXXX]] として呼出元に報告されます。
書き込んだバイト数(つまり返り値)は [[m:String#bytesize]] の
値より小さい可能性があります。

発生した例外 がErrno::EAGAIN、 Errno::EWOULDBLOCK である場合は、
その例外オブジェクトに [[c:IO::WaitWritable]] が [[m:Object#extend]]
されます。よって IO::WaitWritable を write_nonblock のリトライが必要
かの判定に用いることができます。


@param string 自身に書き込みたい文字列を指定します。

@raise IOError 自身が書き込み用にオープンされていなければ発生します。

@raise Errno::EXXX [[man:write(2)]] が失敗した場合に発生します。

