こんにちは、いつもROMばかりの近藤といいます。 早速で申し訳ないのですが、gethostbyname()にてメモリリークが発生し、 解消方法が分かりません。 gethostbyname()とinet_ntoa() で発生しているように見受けられます。これらの関数は、関数 内でallocしているらしく、これがfreeできない(されない)ようです。 しかし、現状ではこれらの関数を使わないということができず、逃げ道が 無い状態です。getaddrinfo()という関数があるのですが、 これも何かしら残ってしまうようです・・・。 また、確認方法として 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>