質問: * /proc/uptime の値は 0 から繰り上がるとはいえ、時間を扱う目的のために Counter64 を使うのは適切なのでしょうか?(好きに実装すればよい?) * Counter64 は 32 ビット CPU の Linux 上でも 64 ビットとして扱われるのでしょうか?
回答: 自己レス 時間を扱う目的のために Counter64 を使うのは適切か? =============================== yes RFC 2578 7.1.10. Counter64 には * インクリメントされる値に使う * 0 にラップアラウンドされる としか書かれていない。 Counter64 は 32 ビット CPU の Linux 上でも 64 ビットとして扱われるのか? =================================================== yes snmp_set_var_value() には ASN_COUNTER64 という値が使われている。 value に struct counter64 を設定する実装となっているので、snmp_set_var_value() には struct counter64 を渡す。 struct counter64 は asn1.h に定義されている。 ``` struct counter64 { u_long high; u_long low; }; ``` u_long は unsigned long * 32ビット環境なら 4 バイト(32ビット) * 64ビット環境なら 8 バイト(64ビット)