[#7300] resolver を呼ばない UDPsocket#recvfrom — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...>

あんまり ruby-dev な話でも無いのですが、ちょっとした機能拡張の提案なので、

12 messages 1999/07/12
[#7321] Re: resolver を呼ばない UDPsocket#recvfrom — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1999/07/15

From: Toshihiko SHIMOKAWA / 下川俊彦 <toshi@csce.kyushu-u.ac.jp>

[#7313] Ruby 1.3.5 — Yukihiro Matsumoto <matz@...>

Ruby 1.3.5 is out, check out:

59 messages 1999/07/15
[#7318] Re: Ruby 1.3.5 — WATANABE Hirofumi <watanabe@...> 1999/07/15

わたなべです.

[#7326] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/15

青山です。

[#7331] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/16

まつもと ゆきひろです

[#7340] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/16

青山です。

[#7368] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/19

まつもと ゆきひろです

[#7373] Re: Ruby 1.3.5 — Shin-ichiro Hara <sinara@...> 1999/07/19

原です。

[#7374] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/19

まつもと ゆきひろです

[#7382] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/19

青山です。

[#7386] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/21

まつもと ゆきひろです

[#7388] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/21

青山です。

[#7387] [PATCH]extconf.rb, tcltklib.c, and rubytest.rb for NetBSD — Ryo HAYASAKA <hayasaka@...21.u-aizu.ac.jp>

早坂@会津大学です。

10 messages 1999/07/21

[#7466] [PATCH] for djgpp — WATANABE Hirofumi <watanabe@...>

わたなべです.

21 messages 1999/07/29
[#7467] Re: [PATCH] for djgpp — Katsuyuki Komatsu <komatsu@...> 1999/07/29

小松です。

[ruby-dev:7409] Re: Ruby 1.3.5

From: Wakou Aoyama <wakou@...>
Date: 1999-07-23 03:50:04 UTC
List: ruby-dev #7409
青山です。

Fri, Jul 23, 1999 at 12:23:27PM +0900 において
Shin-ichiro Hara さん曰く:

> 私がいきなりの eof? が問題だと言ったのは、(最初 false であることが)
> ユーザーの直観と事なる場合があるからです。それからもう一つ、現行の
> eof? も feof(3) も io の種類によっては入力待ちでブロックすることが
> ありますよね?それもユーザーが理解していないといけない。必ず何バイ
> トか読んでから eof? を使うのを作法にすべきかと。話がちょっとずれま
> した。

ブロックの問題は面倒ですよね。ソケットの場合は、相手の送出の具合によっ
ては、何バイトか読んだあとの eof? でもブロックしますから。これはもう相
手しだいなので、select() 等でタイムアウトさせるぐらいしか方法は無いと
思います。eof? にタイムアウトオプションをつけるとか...

def eof?()
  select()
  feof()
end

> あとちょっとで結論がでそう。(^^;;;

残るは read(0) ですか。現在 cvs server にあるものは次のような動きです。

io.stat.size  # 0
io.read(0)    # ""

EOF の判定を feof(3) で行っているので、nil になりません。

一度 EOF に達した後では nil

io.stat.size  # 0
io.read(1)    # ""
io.read(0)    # nil

read(0) は EOF に影響しない。

io.stat.size  # 0
io.read(0)    # ""
io.read(0)    # ""

io.stat.size  # 0
io.read(0)    # ""
io.read(1)    # ""
io.read(0)    # nil

私としては、この動きか、あるいは長さが負の場合と一緒にエラーあたりが良
さそうかと。


-- 
青山 和光 Wakou Aoyama <wakou@fsinet.or.jp>

In This Thread

Prev Next