68user's page 掲示板

Prev< No. 3170〜3174> Next  [最新発言に戻る] [過去ログ一覧]
No. 3170 # 68user 2003/03/27 (木) 21:09:17
>>3164 has
> straceしてみると、どうもpoll()で受信を検出できていないようです。
ほほう、glibc の問題かカーネルの問題かはわかりませんが、今どきの
Linux でそんな問題にぶちあたるとは運がいいですね。

ここは一気に UDP・IP スタックを解析して、Linus にパッチを送付する
まで頑張ってください。しかし粘りますねぇ (笑)

# NIC を変えたらすんなり直ったりして。


>>3169 ふくし
% grep '<>' /usr/src/contrib/perl5/*
/usr/src/contrib/perl5/toke.c: /* turn <> into <ARGV> */

となったので、それを手がかりに調べてみると、perl(1) に
以下のように書いてありました。

      次のループは、

                while (<>) {
                          ... # 各行に対するコード
                }

      以下の疑似コードと同等になります。

                unshift(@ARGV, '-') if $#ARGV < $[;
                while ($ARGV = shift) {
                          open(ARGV, $ARGV);
                          while (<ARGV>) {
                                    ... # 各行に対するコード
                          }
                }

本当に binmode ARGV でうまくいくのかどうかは試していません。

他の調べ方としては print %main::; でシンボルテーブルを表示し、
片っ端から試してみる、とかですかね。

No. 3171 # ふくし 2003/03/27 (木) 21:53:55
<<3170
さん、

ありがとうございます。
結果として、

while (<ARGV>) {
  ...
}

でも

while (<>) {
  ...
}

同様に動くので、<>のファイルハンドルがARGVであることに
間違いはないようですが、

binmode ARGV;

は効かないようです!? へんだなぁ、、。

No. 3172 # へにか 2003/03/27 (木) 22:38:42
>>3166 68user
なるほど、狭義と広義の差が有るんですね。僕にとっては、
新たな知識です。どうも教えていただいて、ありがとうござ
います。

20年程前のパソコン雑誌に載っていた機械語プログラムには、
横一列の合計が書いてあったのを懐かしんで、こんな質問を
してしまいました。確か最初は何も無く、次に横一列、次に
縦一列と横一列、その次にそれ+CRC演算が出てきたという
記憶があります。確か一列はどちらも1octet x 16個で、CRC
は256octet毎に1octetでした。

僕も、その後GoogleでCRCもチェックサムと呼ぶようになっ
た経緯を調べたのですが、経緯自体は、なかなか見つからな
いですね。
もし、どなたか見つけたら、教えていただければ嬉しいです。

蛇足ですが、単純に足すだけだと間違いが見つかりにくいので、
> 加算のたびに右ローテート
のような工夫がされているんでしょうね(推測です)。

No. 3173 # 68user 2003/04/03 (木) 20:37:47
>>3172 へにか
> なるほど、狭義と広義の差が有るんですね。僕にとっては、
> 新たな知識です。
わたしが世の中の「チェックサム」という用語の使われ方を見る限り、
広義のチェックサムと狭義のチェックサムがあるのでは、と思った
だけですので、誤解のなきよう。

例えば IP・UDP・TCP のチェックサムは「1の補数和の 1の補数」で
狭義のチェックサムだと思いますが、一方 java.utik.zip.CRC32
    http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/util/zip/CRC32.html
は Checksum インタフェースを implements していますが、この「Checksum」
は広義のチェックサムかなぁと。…ってなんか苦しい例だなぁ。

      http://www.onelook.com/?w=checksum&ls=a#all_com
を見ても、わたしの思う「狭義のチェックサム」しか載ってないよう
ですし、やっぱりわたしの認識が変なのですかねぇ。

ちなみに
      http://www.jisc.go.jp/index.html
で JIS を調べてみましたが、「チェックサム」の定義は見付けられませんでした。

>>has
あの後、寝てしまいました…。

No. 3174 # has 2003/04/04 (金) 02:27:37
時間のあるときに、遊びつつ飲みつつちょっとずつですが、
linux kernel-2.4.18-24.7.xにてpoll()を追っかけてます。
相当飛ばし読みでやっとこ__pollwait()。
けど先が見えません…。

@68user
あいかわらずですな。またの機会に。

Prev< No. 3170〜3174> Next  [最新発言に戻る] [過去ログ一覧]