首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用net c API设置值。

无法使用net c API设置值。
EN

Stack Overflow用户
提问于 2016-03-29 13:47:55
回答 1查看 765关注 0票数 3

我试图使用net-snmp C api为OID设置一个值,这是我使用的代码片段:

代码语言:javascript
复制
char *ltmp = "description";

char *buff = malloc(sizeof(char)*50);
strcpy(buff,ltmp);

if (!snmp_parse_oid(".1.3.6.1.4.1.2162.1.2.2.1.0", anOID, &anOID_len)) {
    snmp_perror(".1.3.6.1.4.1.2162.1.2.2.1.0");
    SOCK_CLEANUP;
    exit(1);
} else if (snmp_pdu_add_variable(pdu, anOID, anOID_len,'s',buff, (int)strlen(buff))) {
    snmp_perror(".1.3.6.1.4.1.2162.1.2.2.1.0");
}  

运行此代码时,它将引发以下错误

类型切换中的内部误差 分组错误 原因:(badValue)给出的值类型或长度错误。

我在这里做错什么了?

EN

回答 1

Stack Overflow用户

发布于 2016-04-12 17:03:57

您应该为变量类型使用一个预定义的常量;在本例中,是ASN_OCTET_STR而不是s

来自asn1.h

代码语言:javascript
复制
#define ASN_BOOLEAN         ((u_char)0x01)
#define ASN_INTEGER         ((u_char)0x02)
#define ASN_BIT_STR         ((u_char)0x03)
#define ASN_OCTET_STR       ((u_char)0x04)
#define ASN_NULL            ((u_char)0x05)
#define ASN_OBJECT_ID       ((u_char)0x06)
#define ASN_SEQUENCE        ((u_char)0x10)
#define ASN_SET             ((u_char)0x11)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36286263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档