SNMPマネージャAPIでメモリリークしてしまう
初めて投稿します。
ネットワークに接続したプリンタ4台を、SNMPを使って状態監視するソフトを作成しています。以下のソース(文字数制限のため、大半をコメントで記述しています)を実行すると、SnmpMgrRequest()関数内でメモリリークを起こします。
この関数の戻り値はエラーではありません。しかもプリンタ1台のみを監視するとメモリリークしません。この関数をコメント化しても起きません。
SNMPは始めてなので何が悪いのかよくわかりません。
どなたか何かご存知であればご教示お願いします。
開発環境はWindowsXP(SP1) VC++6 SP5を使用しています。
(ソースの拡張子は.cです。)
void main(){
while(1){
for (i = 0 ; i < 4 ; i++) {
mib=StsGet([プリンタのIPアドレス]);
}
Sleep(600);
}
}
int StsGet(LPSTR adr) {
//SnmpUtilMemAlloc ()でSNMPエージェントのアドレス取得
//SnmpUtilMemAlloc()でコミュニティ取得
//変数バインディングの初期化
//SnmpMgrStrToOid()でOIDを文字列から値に変換
//SnmpUtilMemReAlloc ()で変数バインディングにメモリを割当て
//変数バインディングにOIDを追加
//SnmpMgrOpen ()でSNMPマネージャAPIのオープン(タイムアウト:100ms、リトライ:1回)
// SnmpMgrRequest()でSNMPマネージャAPIに指定操作(Get)を要求
//SnmpUtilVarBindListFree(),SnmpUtilMemFree()で各変数を解放
//SnmpMgrClose()でSNMPマネージャAPIとの接続を終了
return [プリンタ状態;]
}