gpt4 book ai didi

c - 使用 net-snmp C API 设置值时出现问题

转载 作者:行者123 更新时间:2023-11-30 16:10:56 25 4
gpt4 key购买 nike

相关代码如下:

pdu = snmp_pdu_create(SNMP_MSG_SET);

if (snmp_add_var(pdu, oid, oid_len, ASN_INTEGER, "1" ) != 0 )
snmp_perror("failed");

我收到错误“错误的值类型:奇怪的 Unicode 字符

当我在终端中运行此 snmpset 命令时:

snmpset -v 3 -u <user> <ip> <oid> integer 1

它工作得很好,那么为什么它不能在我的 C 程序中工作呢?

最佳答案

您使用的 snmp_add_var 错误。从某种意义上来说,它相当于 snmpset,因此您应该传递字符 'i' 而不是常量 ASN_INTEGER,该常量是为别的东西。

ASN_INTEGER 被定义为 ((u_char)0x02),因此解析该参数会导致解码困难。 p><小时/>

“其他东西”是您可能想要使用的函数,即snmp_pdu_add_variable:

pdu = snmp_pdu_create(SNMP_MSG_SET);

uint32_t val = 1;
if (snmp_pdu_add_variable(pdu, oid, oid_len, ASN_INTEGER, &val, sizeof(val)) == nullptr)
snmp_perror("failed");

注意它是如何“输入”的,而不是采用字符串进行词法转换。

关于c - 使用 net-snmp C API 设置值时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58769406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com