[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:72135] Re: 受信メールを自動的に読む方法


しらいしです。

>繰り返しますが,*ふつうのテキストデータ*ですので,getchar() で読むなら,
>while ((c = getchar()) != EOF) { /* 処理 */ }
>です.
>Perl なら,
>while (<>) { }
>ですね.
># 厳密に言えば,read() システムコールが 0 を返すまで,ということかな

そっか。
「メールのデータだから」なんて余計なことを考えていました。
でも、パイプでつながれて入ってくるから、普通に考えればいいのかな。

>Perl でやるのがいいとおもいます.楽ですよ.
>(プロセス間通信とかをやろうとかならなおさら楽)
>シェルだけでもできるとは思いますが,こういうことこそ,Perl でやるべき
>ことだと思います.
>長く使うこととかを考えると,たとえ1からPerlを勉強したとしても,
>Cでぜんぶやるより楽に作れるでしょう.

そうなんですか?!
Perlは全然経験がないので、どういうものなのか、普通にCやシェルで
組むよりも良い!という利点がよく分かりません。
これから早速ホームページや本を読み漁って勉強してみようと
思うのですが、もし簡単に説明できるようなことなら、どういった点で
Perlがお得なのか教えて頂けないでしょうか?

>ここまでする必要は無いのでは? と思います.
>ただ単にプロセスAが目的の作業を行えばいいのではないのでしょうか?
>リアルタイム,というのが理由なのかな?

そうですね・・。
確かにすべての処理をプロセスAが行ってもよいのですが、そうすると
処理が盛りだくさんになってしまうのです。
メールで応答を返したり、エラーチェックを行ったり、
ファイルを読んだり、共有メモリのテーブルを更新したり。
それだけならまだいいのですが、さらに別プロセスを生成することに
なっていて、このプロセスからの終了通知をメッセージキューで受けることに
しているのです。
それで、メールを受信するだけのプロセスを1つ(実際は複数生成されるけれど)、
メッセージキューを受信するだけのプロセスを1つ作ろうと思ったのです。
あとは、速度が重視されるので、受信したメールは一刻も早く読み、
別プロセスによって行った処理の結果を一刻も早く送信する、という
こともプロセスを分けた理由の1つです。

>あとセキュリティには十分注意する必要がありますね.
>/etc の下は読まれないようにするとか.

そうですね。
このあたりも注意するように致します。

どうもありがとうございました。

----
しらいし ひろみ  catmoon _at_ pluto.dti.ne.jp

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: References: