我已经了解了如何使用net-snmp库(http://net-snmp.sourceforge.net/tutorial/tutorial-5/toolkit/demon/index.html)实现SNMP子代理。
这个示例运行良好,但我提出的问题是关于"netsnmp_register_int_instance(& variable )“引用中传递的变量。
当snmp守护程序接收到snmp请求时,将读取此变量,该请求要求"agentx“请求子代理提供变量的值。
但是Locks呢?我打算将subagent与我自己的二进制文件链接起来,以允许他每秒提供有关其状态的信息。
有时可能是snmp库代码正在读取变量,而我自己的代码正在写入变量?
我必须修改读取变量来设置锁的snmp库块的代码吗?
谢谢。
发布于 2011-07-19 04:31:34
如果你的二进制文件是多线程的,那么你需要锁。如果没有,请不要担心。
最简单的做法是在调用代理x处理例程(例如agent_check_and_process)之前设置锁。如果您需要更细粒度的锁定,那么您必须实现自己的处理程序,而不是使用net_snmp_register_int_instance。
https://stackoverflow.com/questions/6517882
复制相似问题