2011-06-29 7 views
2

私はnet-snmpライブラリを使ってsnmpサブエージェントを実装する方法を見ています(http://net-snmp.sourceforge.net/tutorial/tutorial-5/ツールキット/悪魔/ index.htmlを)net-snmpサブエージェントを実装する(linux/C)

exempleはうまく動作しますが、私は、SNMP要求がある場合は、この変数が読み込まれた

「netsnmp_register_int_instance(&変数)」で参照で渡された変数に関する質問をしていますサブエージェントに変数の値を与えるように "agentx"に依頼するsnmp deamonによって受信される。

しかし、Locksについてはどうですか?私は自分のバイナリとサブエージェントをリンクさせて、毎秒状態についての情報を与えることができるようにするつもりです。

私のコードで書かれている間に変数がsnmpライブラリコードによって読み込まれることがありますか?

ロックを設定するために変数を読み取るsnmpライブラリブロックのコードを変更する必要がありますか?

ありがとうございます。

答えて

1

バイナリがマルチスレッドの場合は、ロックが必要です。そうでない場合は、心配しないでください。

最も簡単なことは、エージェントx処理ルーチン(agent_check_and_processなど)を呼び出す前にロックを設定することです。細かいロックが必要な場合は、net_snmp_register_int_instanceを使用する代わりに、独自のハンドラを実装する必要があります。

関連する問題