我正在尝试从userspace向内核空间发送一个struct的列表/数组。与那里推荐的链接类似,我正在考虑使用我为其找到链接的套接字。在这一行中将消息设置为hello
strcpy(NLMSG_DATA(nlh), "Hello");我试过了
NLMSG_DATA(nlh) = my_list这给了我错误:作为赋值的左操作数所需的lvalue。
如何将此更改为使用netlinks发送数组/列表?如果不能以这种方式发送,我怎么能轻易地做到这一点?
更新
我的结构
typedef struct {
int val1;
int val2;
} mystruct;我需要在内核内存中分配一个数组/列表,以便其他系统调用可以访问该列表。
发布于 2010-12-14 03:30:29
NLMSG_DATA()计算值为指针rvalue,因此需要使用类似于memcpy(NLMSG_DATA(nlh), my_list, sizeof my_list)的复制函数。
确切的细节将取决于您的数据结构。您可能希望发送列表条目的数量,然后分别发送每个条目。
发布于 2010-12-14 03:35:27
不能使用netlink套接字发送基于指针的结构。请参阅netlink的分组结构:所有数据必须位于单个块中。
https://stackoverflow.com/questions/4435593
复制相似问题