|
>>1873 dio > $SIG{PIPE} = \&lock_off; \& は関数へのリファレンスです。ちなみに $SIG{PIPE} = sub { unlink($lock_file); exit; } と等価です。 > $SIG{'PIPE'} = 'lock_off'; これだと、シグナルハンドラ lock_off の関数定義が同一ファイル 内にないといけません。別ファイルに sub lock_off を書いて、 それを require している場合は動かないということです。 関数へのリファレンスを使えば、どこで関数が定義されて いようと動きます。 これらの事柄はラクダ本に書いてありますので、もちお持ちで ないなら、購入されることをお薦めします。 > ハンドラの中で変数の値を参照する場合、その変数の初期化前に > そのハンドラを書いて問題ないでしょうか? これは、ハンドラ特有の問題ではなく、関数一般の話になります。 #!/usr/bin/perl &lock_off; sub lock_off { print $lockkey } $lockkey = 1; exit; と #!/usr/bin/perl $lockkey = 1; &lock_off; sub lock_off { print $lockkey } exit; では、前者はよろしくないことはわかりますね。 シグナルハンドラの場合も、%SIG にセットしてしまうとその後いつ シグナルハンドラが呼ばれるかわからないので、%SIG にセットする 前に必要な変数を全て設定しておきましょう。 |
|
>\& は関数へのリファレンスです。ちなみに >・・・・・・ >関数へのリファレンスを使えば、どこで関数が定義されて >いようと動きます。 なるほど そういう違いなのですか。 >シグナルハンドラの場合も、%SIG にセットしてしまうとその後いつ >シグナルハンドラが呼ばれるかわからないので、%SIG にセットする >前に必要な変数を全て設定しておきましょう。 わかりました。 どうもありがとうございます。 |
|
http://messages.yahoo.co.jp/bbs?.mm=CP&action=m&board=1835092&tid=echoa4ka4da4a4a4f&sid=1835092&mid=4 > ↓には、「ping への応答」と書いてます。 > http://www.nspl.co.jp/Solaris/Security/inetd.html 誤りです。ping に応答するのは ICMP reply です。TCP/UDP の echo は、 http://ring.ocn.ad.jp/pub/doc/RFC/rfc862.txt を参照のこと。 A very useful debugging and measurement tool is an echo service. ってことですね。人様が直接使うものです。 …と yahoo BBS に書こうと思ったけどできなかったので、どなたか 伝えて下さい。 |