2

我已经了解如何使用 net-snmp 库实现 snmp 子代理(http://net-snmp.sourceforge.net/tutorial/tutorial-5/toolkit/demon/index.html)

该示例运行良好,但我问一个关于“netsnmp_register_int_instance(&variable)”中引用传递的变量的问题

当 snmp 守护进程接收到 snmp 请求时读取此变量,请求“agentx”请求子代理给出变量的值。

但是锁呢?我将把子代理与我自己的二进制文件链接起来,以允许他每秒提供有关其状态的信息。

有时,变量可能会被 snmp 库代码读取而由我自己的代码编写?

我必须修改读取变量以设置锁定的 snmp 库块的代码吗?

谢谢你。

4

1 回答 1

1

如果您的二进制文件是多线程的,那么您需要锁。如果没有,请不要担心。

最简单的做法是在调用代理 x 处理例程(例如 agent_check_and_process)之前设置锁定。如果您需要更细粒度的锁定,那么您必须实现自己的处理程序,而不是使用 net_snmp_register_int_instance。

于 2011-07-18T20:31:34.307 回答