c - 分配内存并使其在退出后保留在那里

标签 c linux-kernel kernel-module

我正在研究内核模块。长话短说:我需要分配一些内存并让它在模块卸载后留在那里。是否可以?怎么办?

请记住,我不是在问这是否是个好主意。我有我的理由,这很好。

最佳答案

这很容易做到,真的。您所要做的就是在模块 init 函数中动态分配内存,并且它们无法在 exit 函数中释放它。换句话说,故意造成内存泄漏。

不过在初始化期间您需要小心,避免多次进行分配(和系统调用表修补)。我强烈建议不要这样做,并且只在加载模块时保持监视代码处于事件状态。之后保持它处于事件状态意味着您遇到了多重加载问题,而且它也会让您的模块的用户感到惊讶。

关于c - 分配内存并使其在退出后保留在那里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20261744/

相关文章:

mysql - 如何编写连接 MySQL 服务器并执行 SQL 查询的 c 程序?

c - 如何更改 C 中结构属性的大小?

c - timeout = 0 的 recvmmsg() 等同于非阻塞 recvmsg()?

linux-kernel - 嵌入式Linux中UART上的9位协议(protocol)

c - "Attach"来自 Linux 内核/内核模块的用户空间进程

c - 使用指针的通用冒泡排序程序

c - 对写入特定目录中文件的 c 代码进行单元测试

Java 进程可能因 Linux OOM killer 而被终止

linux - 获取另一个驱动程序中的设备列表

linux - 准备计算机以学习系统调用和 Linux 内核模块