Chinaunix首页 | 论坛 | 博客
  • 博客访问: 425459
  • 博文数量: 126
  • 博客积分: 35
  • 博客等级: 民兵
  • 技术积分: 1262
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-19 16:39
文章分类

全部博文(126)

文章存档

2017年(2)

2016年(20)

2015年(64)

2014年(24)

2013年(16)

我的朋友

分类: LINUX

2013-08-22 17:13:01

一台服务器上的程序,版本升级之后,零拷贝采集失效。经组长检查,确认函数库里零拷贝部分的代码与老版本的代码不一致。
老的调用方式是:
_syscall3(int, zcopy_check, int, index, void *, addr_info, void **, addr_list);
新的调用方式是:
#define zcopy_check(type1,type2,type3)  syscall(4,__NR_zcopy_check,type1,type2,type3);

在网上搜索了一下,_syscall3适用于Linux 2.6.18及以前版本,syscall适用于2.6.19及以后版本。出问题的服务器是2.6.9的。

参考文章:
Linux中应用程序如何使用系统调用syscall

关于linux系统调用,参考:
使用 Linux 系统调用的内核命令
http://www.ibm.com/developerworks/cn/linux/l-system-calls/

总结:
很多东西都在变化,破除一成不变的思维,与时俱进,居安思危。
阅读(1573) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~