【发布时间】:2010-12-14 15:11:43
【问题描述】:
我的目标是始终在内核内存中拥有一个数组或列表,以便始终可以从内核空间访问它。为此,我使用这里推荐的 netlink 套接字。我关注this example,它显示了如何发送字符串。我不确定如何在套接字中发送结构数组或结构列表。
typedef struct {
int fiveDollarBills;
int denDollarBills;
} Bills;
是否可以使用 netlink 发送列表或数组?
【问题讨论】:
-
如果一切都失败了,你可以序列化你的数据并发送字符串
-
嗯……没想到。 C是否支持序列化?另外,如果我发送字符串,是否可以在内核空间中使用 string.h lib 来进行字符串比较?
-
我不认为,您需要任何特殊的序列化支持,您只需复制结构的内容即可。 netlink socket 的两端总是运行在同一个系统上,所以二进制布局或多或少是无关紧要的。
-
@lunaryorn: 除非内核是 64 位,用户空间是 32 位。
-
@ephemient:当然,我当然没有想到这一点。但我认为,我们可以同意,使用内核本身以外的其他架构构建内核工具是一个相当愚蠢的想法。