2011-06-29 64 views
2

我看看如何使用net-snmp库实现snmp子代理(http://net-snmp.sourceforge.net/tutorial/tutorial-5/工具/恶魔/ index.html的)实现net-snmp子代理(linux/C)

的为例效果很好,但我问一个关于引用传递的变量“netsnmp_register_int_instance(&变量)”

这个变量读问题,当一个SNMP请求由snmp deamon接收,要求“agentx”请求子代理给出变量的值。

但是,锁怎么样?我将把子代理与我自己的二进制关联起来,允许他每秒钟提供有关其状态的信息。

有时候可能是由我自己的代码写的同时由snmp库代码读取变量?

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

谢谢。

回答

1

如果你的二进制文件是多线程的,那么你需要锁定。如果不是,不要担心。

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