[#36069] 日本語に混じった URL を抜き出したい — keiichi matsunaga <ma2@...>

 松永です。

26 messages 2002/10/02
[#36072] Re: 日本語に混じった URL を抜き出したい — keiichi matsunaga <ma2@...> 2002/10/02

 松永です。

[#36073] Re: 日本語に混じった URL を抜き出したい — SAITO Shukaku <shukaku@...> 2002/10/02

At Wed, 2 Oct 2002 13:51:42 +0900,

[ruby-list:36221] Re: ARGFを2回読み出したい場合について

From: nobu.nakada@...
Date: 2002-10-28 09:27:48 UTC
List: ruby-list #36221
なかだです。

At Mon, 28 Oct 2002 17:27:13 +0900,
Tatsuaki Nagai wrote:
> > ファイルを指定せずにARGFを使用すると、STDINを使うことになります
> > からrewind等はエラーになります。通常のファイルを引数に指定して
> > おけばrewindは動くはずです。
> >
> > $ ruby -e ARGF.rewind
> > -e:1:in `rewind': Illegal seek (Errno::ESPIPE)
> > from -e:1
> > $ ruby -e ARGF.rewind foo
> > $
> 
> うーん、上記の例ではエラーが出ませんが、以下のように行を読み込んだ
> 後だと、ファイルを引数に指定してもエラーが出てしまうんですが。
> 何か勘違いをしているのでしょうか。
> 
> --test.rb
> while line = ARGF.gets
> end
> 
> ARGF.rewind
> 
> while line = ARGF.gets
> end
> 
> $ ruby test.rb foo
> test.rb:5:in `rewind': Bad file descriptor(Errno:EBADF)

rewindする時点では既にfooを読み終っているので、次のファイルであ
る標準入力が対象になります。ttyに対するseekはシステム依存ですが、
linuxでは先に書いた通りESPIPEになりました。Solarisではエラーに
ならずにSTDINの入力待ちになるようです。

> 標準入力を使用した場合はgetsでエラーになります。
> 
> $ruby test.rb < foo
> test.rb:1:in `gets': Bad file descriptor(Errno:EBADF)

これもシステム依存のようです。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread