伊瀬です。 文面からは以下のどちらが問題なのか読み取りずらく、混乱した返答になって いるかもしれませんが、ご容赦ください。 gethostbyname()を使うとメモリリークする gethostbyname()を使うとメモリ使用量が大きい メモリリークに関して: 添付のプログラムをうごかしてみました。私の環境ではリークしていない ようです。(10000回程呼んでもメモリ使用量は増えない) メモリ使用量が大きいことに関して: #if 0 / #if 1を変えることによりサイズは増減しますが、使っている関数 が異なるので、許容範囲内のようにおもいます。 もし、メモリ的にこの使用量が大きすぎるようでしたら、所望の関数を自作 するか、gethostbyname()を呼んだスレッドを捨てることで解決できそうな 気がします。 以上、お役に立てば幸です。 > 早速で申し訳ないのですが、gethostbyname()にてメモリリークが発生し、 > 解消方法が分かりません。 (省略) > また、確認方法として > struct in_addr addr; > #if 0 > if((servhost = gethostbyname(host)) == NULL){ > unsigned long addr; > addr = inet_addr(host); > // サーバのアドレスからサーバのアドレスを設定 > servhost = gethostbyaddr((char *) &addr, sizeof(addr), AF_INET); > if(servhost == NULL){ > return(-1); > } > } > memcpy((char *)&server.sin_addr, servhost->h_addr, servhost->h_length); > #else > if( !inet_aton( host, &addr ) ){ > return -1; > } > memcpy((char *)&server.sin_addr, &addr, sizeof( struct in_addr )); > #endif > とし、リクエストのURLをIP指定でメモリーの状況を確認した > ところ、ほとんど増えないんです・・・やはりネックはこの > 関数か?これだけでかなりメモリーの使用量が減りました。 > > 以上、どなたか解決方法をご存知でしたらお願い致します。 > > -- > 近藤 正博 <echo@xxxxxxxxxxxxxxx> > >