Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6320022
  • 博文数量: 2759
  • 博客积分: 1021
  • 博客等级: 中士
  • 技术积分: 4091
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-11 14:14
文章分类

全部博文(2759)

文章存档

2019年(1)

2017年(84)

2016年(196)

2015年(204)

2014年(636)

2013年(1176)

2012年(463)

分类: LINUX

2013-08-24 09:31:19

一台服务器上的程序,版本升级之后,零拷贝采集失效。经组长检查,确认函数库里零拷贝部分的代码与老版本的代码不一致。
老的调用方式是:
_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/

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