+ -
当前位置:首页 → 问答吧 → 内核2.6.16的一个头文件的修改

内核2.6.16的一个头文件的修改

时间:2006-04-04

来源:互联网

注意到从2.6.16版本开始,linux的内核中include/net/inet_common.h的头文件有修改,第四和第五行inet_stream_ops和inet_dgram_ops被声明成了常量。这造成我的一个第三方内核模块不能编译,因为这个模块在工作的时候需要对inet_stream_ops和inet_dgram_ops进行赋值的操作。在新版的内核中因为这两个量被声明成了常量,当然也就编译不能通过了。目前本人对于内核编程方面基本不懂,我想知道的是声明成常量是为了什么?我猜是安全方面的原因。如果确实需要对数据进行修改,那么新版的内核是否会提供直接赋值之外的操作方法呢?我对那个模块该怎么改,而不是去动内核呢?因为我也不知道,改那个头文件的定义是否会对对系统产生其他的影响。并且为一个模块去发布一个内核补丁,实在没有必要。请大家指点!

作者: vulcan   发布时间: 2006-04-04

没关系,你在编译内核时不要修改此头文件,但当编译模块时,把它改成非常不就行了,是不是常量没关系,只是编译时编译器是否允许其它地方进行修改,但是运行时谁也管不了的。

作者: dragonLinux   发布时间: 2006-05-04