種類
- インスタンスメソッド (64)
- 特異メソッド (11)
- クラス (11)
- 定数 (11)
クラス
-
ARGF
. class (9) - GDBM (11)
- IO (22)
- Socket (11)
- SystemCallError (11)
- UDPSocket (11)
- UNIXServer (11)
キーワード
- === (11)
- NOLOCK (11)
-
accept
_ nonblock (11) -
read
_ nonblock (20) -
recvfrom
_ nonblock (22) -
write
_ nonblock (11)
検索結果
先頭5件
-
Errno
:: EWOULDBLOCK (24000.0) -
システムコールのエラーコードを表す例外クラスです。詳細は Errno::EXXX を参照してください。
システムコールのエラーコードを表す例外クラスです。詳細は Errno::EXXX を参照してください。 -
IO
# read _ nonblock(maxlen , outbuf = nil , exception: true) -> String | Symbol | nil (6112.0) -
IO をノンブロッキングモードに設定し、 その後で read(2) システムコールにより 長さ maxlen を上限として読み込み、文字列として返します。 EAGAIN, EINTR などは Errno::EXXX 例外として呼出元に報告されます。
...さ maxlen を上限として読み込み、文字列として返します。
EAGAIN, EINTR などは Errno::EXXX 例外として呼出元に報告されます。
発生した例外 がErrno::EAGAIN、 Errno::EWOULDBLOCK である場合は、
その例外オブジェクトに IO::WaitReadable が O......ッファが空でない場合は、read_nonblock はバッファから読み込みます。この場合、read(2) システムコールは呼ばれません。
このメソッドはノンブロッキングモードにする点を除いて IO#readpartial と
同じであることに注意してく......OFError が発生します。ただし、maxlen に 0 が指定されている場合は、空文字列 "" を返します。
@param maxlen 読み込む長さの上限を整数で指定します。
@param outbuf 文字列で指定します。IO#read_nonblock は読み込んだデータを outbuf... -
IO
# write _ nonblock(string , exception: true) -> Integer | :wait _ writable (6112.0) -
IO をノンブロッキングモードに設定し、string を write(2) システムコールで書き出します。
...性があります。
発生した例外 がErrno::EAGAIN、 Errno::EWOULDBLOCK である場合は、
その例外オブジェクトに IO::WaitWritable が Object#extend
されます。よって IO::WaitWritable を write_nonblock のリトライが必要
かの判定に用いることができま......ng 自身に書き込みたい文字列を指定します。
@param exception false を指定すると、書き込み時に Errno::EAGAIN、Errno::EWOULDBLOCK が発生
する代わりに :wait_writable を返します。
@raise IOError 自身が書き込み用にオープンさ... -
ARGF
. class # read _ nonblock(maxlen , outbuf = nil , exception: true) -> String | Symbol | nil (6106.0) -
処理中のファイルからノンブロッキングモードで最大 maxlen バイト読み込みます。 詳しくは IO#read_nonblock を参照してください。
...ブロッキングモードで最大 maxlen バイト読み込みます。
詳しくは IO#read_nonblock を参照してください。
ARGF.class#read などとは違って複数ファイルを同時に読み込むことはありません。
@param maxlen 読み込む長さの上限を整数で......::EWOULDBLOCK が発生する代わりに
:wait_readable を返すかどうかを指定します。また、false
を指定した場合は既に EOF に達していれば
EOFError の代わりに nil を返します。
@see ARGF.class#readpartial... -
GDBM
:: NOLOCK -> Integer (6106.0) -
GDBM.open の第3引数に指定します。
...オープンを行うと
Errno::EWOULDBLOCK(または Errno::EAGAIN) 例外が発生します。
このフラグを指定していれば、他のプロセスがオープンしている最中でも同時
オープンすることができます。
この定数は libgdbm version 1.8.0 以降より有... -
Socket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Addrinfo] (6106.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) を呼び出します。
...します。
Errno::EWOULDBLOCK、Errno::EAGAIN のような待ってからリトライすることが
可能であることを意味する例外には、IO::WaitReadable が extend
されています。
@param maxlen ソケットから受けとるデータの最大値
@param flags フラグ
@raise... -
UDPSocket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Array] (6106.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) でソケットからデータを受け取ります。
...キングモードに設定した後、
recvfrom(2) でソケットからデータを受け取ります。
maxlen で受け取るデータの最大バイト数を指定します。
flags はフラグで、Socket::MSG_* の bitwise OR を渡します。
詳しくは recvfrom(2) を参照してく......GAIN, Errno::EINTR を含め例外 Errno::EXXX が発生します。
Errno::EWOULDBLOCK、Errno::EAGAIN のような待ってからリトライすることが
可能であることを意味する例外には、IO::WaitReadable が extend
されています。
require 'socket'
s1 = UDPSocket.new......ddr.values_at(3,1))
s1.connect(*s2.addr.values_at(3,1))
s1.send "aaa", 0
begin # emulate blocking recvfrom
p s2.recvfrom_nonblock(10)
#=> ["aaa", ["AF_INET", 33302, "localhost.localdomain", "127.0.0.1"]]
rescue IO::WaitReadable
IO.select([s2])
retry
end
@param maxlen 受... -
UNIXServer
# accept _ nonblock -> UnixSocket (6106.0) -
ソケットをノンブロッキングモードに設定した後、 accept(2) を呼び出します。
...った場合、Socket#accept と同じ例外が
発生します。
Errno::EWOULDBLOCK, Errno::EAGAIN,
Errno::ECONNABORTED, Errno::EPROTO のいずれかの例外が
発生した場合は、その例外には IO::WaitReadable が extend
されます。それを利用してリトライ可能な例......を掴まえることができます。
require 'socket'
serv = UNIXServer.new("/tmp/sock")
begin # emulate blocking accept
sock = serv.accept_nonblock
rescue IO::WaitReadable, Errno::EINTR
IO.select([serv])
retry
end
# sock is an accepted socket.
@see UNIXServer#accept... -
SystemCallError
. ===(other) -> bool (3112.0) -
other が SystemCallError のサブクラスのインスタンスで、 かつ、other.errno の値が self::Errno と同じ場合に真を返します。そうでない場合は偽を返します。
...other が SystemCallError のサブクラスのインスタンスで、
かつ、other.errno の値が self::Errno と同じ場合に真を返します。そうでない場合は偽を返します。
従って、特に other が self.kind_of?(other) である場合には Module#=== と同様に真......めて捕捉するために Module#=== を上書きしていました。
しかし、Ruby 1.8 のリリース時点では同じ errno 値を持つクラスは一つしか作られないようになりました。そのため現在はこのメソッドは実質上 Module#=== と同じ意味しかあ......りません。
@param other 任意のオブジェクト
例
p Errno::EAGAIN::Errno
p Errno::EWOULDBLOCK::Errno
begin
raise Errno::EAGAIN, "pseudo error"
rescue Errno::EWOULDBLOCK
p $!
end
# => 11
11
#<Errno::EAGAIN: pseudo error>...