我的目标是始终在内核内存中有一个数组或列表,以便始终可以从内核空间访问它。 为此,我在这里推荐使用netlink套接字。 我按照这个示例 ,它显示了如何发送字符串。 我不确定如何在套接字中发送结构数组或结构列表。
typedef struct { int fiveDollarBills; int denDollarBills; } Bills;
是否可以使用netlink发送列表或数组?
NetLink本身并不关心数据是字符串,整数,结构等。它只需要一个void *和一个长度并复制数据而不用看它。 您可以将结构转换为void *并使用sizeof确定长度并通过netlink发送该数据。
另一方面,您只需要获取void *和length,validation长度是否应该是什么,然后将void *转换回指向struct的指针。 要validation的两个重要事项是:
另一种选择不是直接发送原始数据,而是通过将数据从已知格式的字符串转换为“序列化”数据。 这将允许您以额外的CPU和内存开销为代价处理更复杂的数据结构
以上就是c/c++开发分享与netlink的内核空间用户空间通信相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/550046.html