0
我正在嘗試升級由mib2c函數用作模板的舊.config文件以生成C代碼。變量的大部分屬性被描述爲here,但我找不到任何關於.needlength的內容。任何想法是什麼意思?它是否可以被記錄的另一個屬性替代?在mib2c中使用.needlength屬性是什麼?
@if [email protected]
我正在嘗試升級由mib2c函數用作模板的舊.config文件以生成C代碼。變量的大部分屬性被描述爲here,但我找不到任何關於.needlength的內容。任何想法是什麼意思?它是否可以被記錄的另一個屬性替代?在mib2c中使用.needlength屬性是什麼?
@if [email protected]
綜觀/usr/bin/mib2c
源代碼,相信needlength
出現的地方是這一行:
$it =~ s/\$(\w+)\.(needlength)/$perltolen{$SNMP::MIB{$vars{$1}}{type}}/g;
,我們有:
%perltolen = ("OCTETSTR", "1",
"INTEGER", "0",
"INTEGER32", "0",
"UNSIGNED32", "0",
"UINTEGER", "0",
"OBJECTID", "1",
"COUNTER64", "0",
"COUNTER", "0",
"IPADDR", "0",
"BITS", "1",
"TICKS", "0",
"GAUGE", "0",
"OPAQUE", "1");
所以,它看起來像@if [email protected]
區分需要指定長度的類型和不需要的類型。
而且,不,我不認爲它可以被另一個屬性取代。
這是否意味着只有類型爲「OCTETSTR」,「OBJECTID」,「BITS」和「OPAQUE」的變量會在.needlength上返回1?另外,在這個特定的上下文中,「指定可變長度」是什麼意思? – Nazar
@Naz如果你有一個以OCTETSTR作爲索引的表,那麼索引的長度會因爲它被編碼爲'length.char(0).char(1)... char(n)'(例如'$ base)而變化。 3.65.66.67'爲索引'「ABC」')。與具有固定大小的INTEGER進行比較。我認爲這就是這裏的意思。 – PerlDuck