Chinaunix首页 | 论坛 | 博客
  • 博客访问: 46248
  • 博文数量: 9
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 165
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-21 11:40
文章分类
文章存档

2008年(9)

我的朋友
最近访客

分类: C/C++

2008-06-03 11:18:15

    近段时间把c++采集流量程序从32位Linux平台迁移至64位Linux平台,,原先在32位Linux上运行良好的程序,在64位平台出现非常奇怪的问题,采集到的16进制数值超出了计数器范围,而且头几位数不同程度的出现重复,如:46A6B46A6B0CB0835F。我所使用的采集流量类库是snmp++3.2.23(snmp++3.2.22对64位平台支持的不好),于是从类库着手查找问题,终于被我发现问题所在。

    打开src/ctr64.cpp,把

sprintf(buf, "0x%lX%08lX", high(), low());

改为

sprintf(buf, "0x%X%08X", high(), low());

重新编译
make -f Makefile.linux
把snmp++/lib目录下的文件复制到/usr/lib64目录下,问题解决。
阅读(1327) | 评论(0) | 转发(0) |
0

上一篇:gettimeofday与随机数

下一篇:没有了

给主人留下些什么吧!~~