首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Netlink套接字

Netlink套接字
EN

Stack Overflow用户
提问于 2010-12-14 03:27:13
回答 2查看 2.6K关注 0票数 0

我正在尝试从userspace向内核空间发送一个struct的列表/数组。与那里推荐的链接类似,我正在考虑使用我为其找到链接的套接字。在这一行中将消息设置为hello

代码语言:javascript
复制
strcpy(NLMSG_DATA(nlh), "Hello");

我试过了

代码语言:javascript
复制
NLMSG_DATA(nlh) = my_list

这给了我错误:作为赋值的左操作数所需的lvalue。

如何将此更改为使用netlinks发送数组/列表?如果不能以这种方式发送,我怎么能轻易地做到这一点?

更新

我的结构

代码语言:javascript
复制
typedef struct {
 int val1;
 int val2;
} mystruct;

我需要在内核内存中分配一个数组/列表,以便其他系统调用可以访问该列表。

EN

回答 2

Stack Overflow用户

发布于 2010-12-14 03:30:29

NLMSG_DATA()计算值为指针rvalue,因此需要使用类似于memcpy(NLMSG_DATA(nlh), my_list, sizeof my_list)的复制函数。

确切的细节将取决于您的数据结构。您可能希望发送列表条目的数量,然后分别发送每个条目。

票数 0
EN

Stack Overflow用户

发布于 2010-12-14 03:35:27

不能使用netlink套接字发送基于指针的结构。请参阅netlink的分组结构:所有数据必须位于单个块中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4435593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档