write_nonblock(string, exception: true) -> Integer | :wait_writable
[permalink][rdoc][edit]-
IO をノンブロッキングモードに設定し、string を write(2) システムコールで書き出します。
write(2) が成功した場合、書き込んだ長さを返します。 EAGAIN, EINTR などは例外 Errno::EXXX として呼出元に報告されます。
書き込んだバイト数(つまり返り値)は String#bytesize の値より小さい可能性があります。
発生した例外 がErrno::EAGAIN、 Errno::EWOULDBLOCK である場合は、その例外オブジェクトに IO::WaitWritable が Object#extend されます。よって IO::WaitWritable を write_nonblock のリトライが必要かの判定に用いることができます。
- [PARAM] string:
- 自身に書き込みたい文字列を指定します。
- [PARAM] exception:
- false を指定すると、書き込み時に Errno::EAGAIN、Errno::EWOULDBLOCK が発生する代わりに :wait_writable を返します。
- [EXCEPTION] IOError:
- 自身が書き込み用にオープンされていなければ発生します。
- [EXCEPTION] Errno::EXXX:
- write(2) が失敗した場合に発生します。