相关疑难解决方法(0)

在Linux内核模块中读/写文件

我知道所有关于为什么不应该从内核读/写文件的讨论,而是如何使用/ procnetlink来做到这一点.无论如何我想读/写.我也读过" 驾驶我的坚果 - 你应该在内核中做的事情".

但问题是2.6.30不能导出sys_read().相反,它包含在内SYSCALL_DEFINE3.因此,如果我在我的模块中使用它,我会收到以下警告:

WARNING: "sys_read" [xxx.ko] undefined!
WARNING: "sys_open" [xxx.ko] undefined!
Run Code Online (Sandbox Code Playgroud)

显然insmod无法加载模块,因为链接没有正确发生.

问题:

  • 如何在2.6.22之后在内核中读/写(哪里sys_read()/ sys_open()不导出)?
  • 一般来说,如何使用SYSCALL_DEFINEn()内核中包含宏的系统调用?

c file-io kernel-module linux-kernel

89
推荐指数
2
解决办法
10万
查看次数

在Linux内核中是否有类似sprintf的C函数?

是否有类似sprintf()Linux内核的功能(如printf()- > printk())?

c printf linux-kernel

20
推荐指数
1
解决办法
2万
查看次数

为什么我们不能在内核开发中使用C标准库函数?

我刚开始学习内核开发并且有一点疑问.为什么我们不能在将它与c库链接后在内核开发中使用c函数?为什么内核永远不会与ac库链接,而是有自己的一些标准c函数的实现,printk()而不是printf().如果内核是用c编写的并且在ac编译器的帮助下编译的话,为什么我们不能使用c库中的标准函数呢?

linux linux-kernel

11
推荐指数
1
解决办法
7032
查看次数

标签 统计

linux-kernel ×3

c ×2

file-io ×1

kernel-module ×1

linux ×1

printf ×1