種類
- インスタンスメソッド (77)
- クラス (22)
- 文書 (22)
- 特異メソッド (11)
- 定数 (11)
クラス
- BasicSocket (11)
-
Errno
:: EXXX (11) - IO (22)
- Socket (22)
- SystemCallError (11)
- TCPServer (11)
- UDPSocket (11)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) - === (11)
- EXXX (11)
- Errno (11)
-
accept
_ nonblock (22) -
read
_ nonblock (11) -
recv
_ nonblock (11) -
recvfrom
_ nonblock (22) -
ruby 1
. 8 . 3 feature (11) -
write
_ nonblock (11)
検索結果
先頭5件
-
Errno
:: EAGAIN (21032.0) -
システムコールのエラーコードを表す例外クラスです。詳細は Errno::EXXX を参照してください。
...システムコールのエラーコードを表す例外クラスです。詳細は Errno::EXXX を参照してください。... -
Errno
:: EXXX :: Errno -> Integer (12163.0) -
Errno::EXXX の各クラスに対応するシステム依存のエラーコード値(整数)です。
...
Errno::EXXX の各クラスに対応するシステム依存のエラーコード値(整数)です。
例:
p Errno::EAGAIN::Errno # => 11
p Errno::EWOULDBLOCK::Errno # => 11... -
Errno
:: EXXX (9072.0) -
システム依存のエラーコードのそれぞれに対応する一連の例外クラスです。 Rubyのライブラリ内部でシステムコールや一部のC言語関数が失敗したときに発生します。
...EXXX」というクラスが定義されているわけではありません。「XXX」の部分は下記に列挙したような各種のエラー名が入ります。
例えば、File.open の内部でシステムコール open(2) がエラーコード ENOENT を返すと、Rubyは例外 Errno::E......されるときに、デフォルトで下記リストのような Errno::EXXX クラスを定義しようとします。
動作環境に EXXX というエラーコードが存在しない場合、Rubyはその Errno::EXXX を Errno::NOERROR の別名として定義します。
また、以下の......アル errno(3) を参照してください。
Microsoft Windows システムにおいては http://msdn2.microsoft.com/ja-jp/library/5814770t.aspx を参照してください。
* EPERM
* ENOENT
* ESRCH
* EINTR
* EIO
* ENXIO
* E2BIG
* ENOEXEC
* EBADF
* ECHILD
* EAGAIN
* EN... -
SystemCallError
. ===(other) -> bool (158.0) -
other が SystemCallError のサブクラスのインスタンスで、 かつ、other.errno の値が self::Errno と同じ場合に真を返します。そうでない場合は偽を返します。
...other.errno の値が self::Errno と同じ場合に真を返します。そうでない場合は偽を返します。
従って、特に other が self.kind_of?(other) である場合には Module#=== と同様に真を返します。
その他に、 Errno::EXXX::Errno == Errno::EYYY::Errno であ......も Errno::EXXX == Errno::EYYY.new は真を返します。
エラー名は異なるがエラーコードは同じであるような Errno::EXXX 例外をまとめて捕捉するために Module#=== を上書きしていました。
しかし、Ruby 1.8 のリリース時点では同じ errno 値......しかありません。
@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>... -
IO
# read _ nonblock(maxlen , outbuf = nil , exception: true) -> String | Symbol | nil (96.0) -
IO をノンブロッキングモードに設定し、 その後で read(2) システムコールにより 長さ maxlen を上限として読み込み、文字列として返します。 EAGAIN, EINTR などは Errno::EXXX 例外として呼出元に報告されます。
...り
長さ maxlen を上限として読み込み、文字列として返します。
EAGAIN, EINTR などは Errno::EXXX 例外として呼出元に報告されます。
発生した例外 がErrno::EAGAIN、 Errno::EWOULDBLOCK である場合は、
その例外オブジェクトに IO::WaitReadabl......。read(2) システムコールが 0 を返した場合は、空文字列になります。
@param exception 読み込み時に Errno::EAGAIN、
Errno::EWOULDBLOCK が発生する代わりに
:wait_readable を返すかどうかを指定します。また、false......の代わりに nil を返します。
@raise IOError 自身が読み込み用にオープンされていなければ発生します。
@raise Errno::EXXX read(2) システムコールの結果としてエラーが起きた場合に発生します。
@raise EOFError read(2) システムコール... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (66.0) -
1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))
...に errno が一致する例外を同じと見なすよう
に再定義されました。これにより、例えば Errno::EWOULDBLOCK と
Errno::EAGAIN が同じ意味(同じerrno)の場合にどちらを指定しても rescue
できるようになりました。
その後、errno が......一致する Errno::XXX オブジェクトは同一のオブジェクト
になったのでこの変更の効果はなくなってますが、変更自体は残ってます。
(ユーザで例外クラスを定義するのに使えるかもしれません)
((<ruby-dev:19589>))
: while, until,......: ((<NoMethodError/NoMethodError.new>))(msg, name, args) [compat]
: ((<SystemCallError/SystemCallError.new>))(msg, err) [compat]
: ((<Errno::EXXX>)).new(msg) [compat]
内部の実装でインスタンス変数を初期化していなかったために warning が... -
IO
# write _ nonblock(string , exception: true) -> Integer | :wait _ writable (66.0) -
IO をノンブロッキングモードに設定し、string を write(2) システムコールで書き出します。
...長さを返します。
EAGAIN, EINTR などは例外 Errno::EXXX として呼出元に報告されます。
書き込んだバイト数(つまり返り値)は String#bytesize の
値より小さい可能性があります。
発生した例外 がErrno::EAGAIN、 Errno::EWOULDBLOCK である場......定すると、書き込み時に Errno::EAGAIN、Errno::EWOULDBLOCK が発生
する代わりに :wait_writable を返します。
@raise IOError 自身が書き込み用にオープンされていなければ発生します。
@raise Errno::EXXX write(2) が失敗した場合に... -
Socket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Addrinfo] (48.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) を呼び出します。
...数、返り値は Socket#recvfrom と同じです。
recvfrom(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。
Errno::EWOULDBLOCK、Errno::EAGAIN のような待ってからリトライすることが
可能であることを意味する例外に......は、IO::WaitReadable が extend
されています。
@param maxlen ソケットから受けとるデータの最大値
@param flags フラグ
@raise Errno::EXXX recvfrom(2) がエラーを報告した場合に発生します。詳しくは
man を参照してください... -
UDPSocket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Array] (48.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) でソケットからデータを受け取ります。
...ス情報の
2要素の配列となります。
recvfrom(2) がエラーになった場合、
Errno::EAGAIN, Errno::EINTR を含め例外 Errno::EXXX が発生します。
Errno::EWOULDBLOCK、Errno::EAGAIN のような待ってからリトライすることが
可能であることを意味する... -
ruby 1
. 8 . 3 feature (48.0) -
ruby 1.8.3 feature *((<ruby 1.8 feature>)) *((<ruby 1.8.2 feature>))
....3 以降では、VERBOSE モードの時に IO#read がノンブロッキングモードで
データの読み込みに失敗して ((<Errno::EAGAIN|Errno::EXXX>)) エラーが発生した場合、
"nonblocking IO#read is obsolete" という警告が出るようになりました。
そして......io.nonblock = true
p io.read(4)'
-e:4:in `read': Resource temporarily unavailable (Errno::EAGAIN)
from -e:4
$ ruby -e 'sleep 1; print "hoge"' | ruby-1.8.3 -rio/nonblock -we '
i......(4)'
-e:4: warning: nonblocking IO#read is obsolete; use IO#readpartial or IO#sysread
-e:4:in `read': Resource temporarily unavailable (Errno::EAGAIN)
from -e:4
$ ruby -e 'sleep 1; print "hoge"' | ruby-1.8.3 -rio/nonblock -we '
i...