[Tokyo.pm] fork された子プロセスでLHA

Hirosi Taguti taguti @ secom-sis.co.jp
2003年 4月 17日 (木) 03:02:05 CDT


田口です。

また困りごとです。(tokyo-pmに流してご免なさい)

forkを使ったオーソドックスなソケットデーモンを作成してます。
Windows 2000 server, AP 5.6.1 635
ほぼ順調だったのですが、最後に1つだけLHAの解凍が出来ません。
今回の電文は最大32KBの制限があり、これを超える情報を送信する際は
LHA圧縮したデータを送信することになってます。
(そんな巨大なデータよこすなよ)
私は受信してLHA圧縮の場合は解凍し、平文のファイルとして保存する受信専用
サーバーを作成しているのですが、仮想メモリがどんどん増加してしまいます。
子プロセス上で実行しているので使用したメモリは開放されるのかと思ったら
どうもそうではないみたいです。
試しにforkしないプログラムで実行するとメモリの増加は起きません。

LHA解凍の方法は色々試しましたがみな同じでした。
1. `LHA32 e -gm file.LZH file.ORG`(バクチク?)を使う方法。
2. Win32::APIを使う方法。(unlha32.dll)
3. Win32::Processを使う方法。
Win32::Processは、CREATE_NEW_CONSOLEやDETACHED_PROCESSなど色々。

行き詰まってしまいました。
宜しくお願いします。

--
Taguti @ tokyo.pm.org



Tokyo-pm メーリングリストの案内