Article View: fj.lang.perl
Article #128Re: select system call in Perl
From: Hideyuki Endo
Date: Thu, 26 Nov 1998 00:00
Date: Thu, 26 Nov 1998 00:00
46 lines
2169 bytes
2169 bytes
えんどうです rsekido@midicity.co.jp (SEKIDO Ryoichi) writes: >Perl の select システムコールでよく分からないことがあるので,お尋ねします >. >クライアントからの接続を select で待ち受けて処理しようとしていますが, >新しい接続を accept で受けても,帰ってくるファイルハンドルが1回目と同じに > >なってしまいます.そうではなくて,クライアント間のやりとりを仲立ちするよう >な >プログラムを作りたいのです. ファイルハンドルに毎回おなじシンボル使っているからです。 perlfaq5にこのあたりの記述があります。 How do I make an array of filehandles? あたりでサーチしてみてください。 古来から伝わる方法としては、最初に $seq = 0; として、acceptのあたりを、 local $NS = `C` . ++seq;# `C`は単にユニークな文字列ってだけで、なんでもよい。 accept($NS, S); # つまり、`C0`、`C1`、`C2` ...と云うシンボルが渡る : vec($rmask1, fileno($NS), 1) = 1; : とすると云うのがあります。毎回違う識別子を与えるのですね。 と、perlfaq5を見たら、perl5的には、同じことを、 use Symbol; : my $NS = gensym(); : とするのですね。 あと、ついでですが、IPCに関する部分は、perl5ではもう少しきれいな書き方 ができますよ。perlipcをみてみたらどうでしょうか。 # それももう古いか……今はIO::Socketかな では はは -- Hideyuki Endo endo-h@remus.dti.ne.jp
Technical Details
Message-ID:
<wkbtlvyf5h.fsf@remus.dti.ne.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<rsekido-2511981308400001@news.navi-con.or.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 1043e7,fa75a01daeb606d9 X-Google-Attributes: gid1043e7,public X-Google-Thread: fdef0,fa75a01daeb606d9 X-Google-Attributes: gidfdef0,public From: Hideyuki Endo <endo-h@remus.dti.ne.jp> Subject: Re: select system call in Perl Date: 1998/11/26 Message-ID: <wkbtlvyf5h.fsf@remus.dti.ne.jp> X-Deja-AN: 415553850 Sender: endo-h@KYTOMA References: <rsekido-2511981308400001@news.navi-con.or.jp> Content-Type: text/plain; charset=ISO-2022-JP X-Emacs: Emacs 20.2, MULE 3.0 (MOMIJINOGA), Meadow-1.00 (MIDORI) Organization: Dream Train Internet Mime-Version: 1.0 (generated by SEMI 1.5.2 - "Kurobe") Newsgroups: fj.lang.perl,fj.unix