+ -
当前位置:首页 → 问答吧 → 请问一个关于Netlink的问题。

请问一个关于Netlink的问题。

时间:2010-10-28

来源:互联网

本帖最后由 程序c 于 2010-10-28 21:25 编辑

各位好,之前看了

http://linux.chinaunix.net/bbs/v ... p%3Bfilter%3Ddigest

netlink socket 编程之 why & how


,并且将里面的例子按照新版 2.6.32改编,发现新版

struct netlink_skb_parms 里面没有 .dst_pid 这个成员了

现在变成下面这样了,而老版内核有 .dst_pid这个成员

164struct netlink_skb_parms
165{
166        struct ucred            creds;          /* Skb credentials      */
167        __u32                   pid;
168        __u32                   dst_group;
169        kernel_cap_t            eff_cap;
170        __u32                   loginuid;       /* Login (audit) uid */
171        __u32                   sessionid;      /* Session id (audit) */
172        __u32                   sid;            /* SELinux security id */
173};



我在使用 NETLINK_CB(nl_skb).dst_pid=pid; 这行出现了错误,

请问 2.6.32如何编写呢?



再附加一个小白问题(如果看不懂我的意思可以忽略,可能是我的提问本身就有问题):

指针可以这样用啊

abc = malloc(1024);
struct aaa {
   int a;
   int b;
} * ccc;
ccc=(struct aaa*) abc;
ccc.a=123;
ccc.b=456;

然后再把abc发到别的函数里面去。
struct aaa让abc里面的字节空间结构化了?

作者: 程序c   发布时间: 2010-10-28

按照新内核下定义的接口和数据结构来操作吧,正好是练习的机会。
另外, 内核源码中肯定有使用 netlink 的地方,你可以参考人家的实现。

作者: Godbach   发布时间: 2010-10-29