【问题标题】:How to access a global variable across sub directories within a kernel space?如何跨内核空间内的子目录访问全局变量?
【发布时间】:2016-06-25 17:44:51
【问题描述】:

有没有办法在子目录中使用在 linux 内核模块中定义的全局变量?使用 EXPORT_SYMBOL 使其在当前目录中可用。我尝试在头文件中定义它,并使用“../name_header.h”将头文件包含在子目录中,但它似乎无法识别该变量。 具体来说,我在 c 文件中有一个变量 - vport.c(属于 openvswitch ),我想在子目录中访问这个变量。

【问题讨论】:

  • 你能粘贴你的代码和你得到的错误信息吗?

标签: c linux


【解决方案1】:

EXPORT_SYMBOL 使符号可用于动态链接代码(内核模块),但我认为这不是您想要实现的目标。

为了从不同的编译单元访问变量,在您尝试访问该变量的 c 文件中添加 extern 减速。或者更好的是,使用一个通用头文件并将外部减速放入该文件中。该编译单元(例如 c 文件)是否在不同的目录或子目录中通常无关紧要。

【讨论】:

  • 我也尝试过这样做 - 我尝试使用头文件,甚至尝试放置在 ovs/include 目录(定义了所有全局头文件)和父目录中,但它没有似乎认识变量
猜你喜欢
  • 1970-01-01
  • 2016-08-24
  • 1970-01-01
  • 2013-12-25
  • 1970-01-01
  • 1970-01-01
  • 2013-01-21
  • 2015-11-28
  • 1970-01-01
相关资源
最近更新 更多