c - Linux 内核中的 stdlib.h 替代品?

标签 c linux kernel

在 Linux 中开发内核模块时,不允许使用 C 标准库。
但是,如果我需要使用一些常见功能,例如 strcat(),我需要去哪里?

最佳答案

无论 Linux 内核中没有实现什么,您都必须自己实现或借用另一个开源内核模块。但是,您会发现 strcat 是在内核中实现的。

请参阅kernel API文档。具体来说Basic C Library Functions一般问题部分,以及 String Manipulation有关 strcat 的具体问题部分。

您需要包含 linux/string.h

我不知道为什么内核 API 文档实际上没有显示您必须包含才能获取该函数的头文件。但是,如果您正在寻找某些内容,则可以将搜索范围限制为 /include/linux,因为如果头文件具有在内核不同部分之间共享的函数,那么头文件就位于该位置。

/include/linux 之外的头文件仅包含与头文件位于同一目录中的源文件的定义。异常(exception)是 /arch/.../include,它将包含特定于体系结构的 header ,而不是独立于平台的 header 。

关于c - Linux 内核中的 stdlib.h 替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60558470/

相关文章:

编译器错误 : implicit declaration of function 'find_task_by_vpid'

c - 未初始化的数组变量发生了什么?

c++ - 如果程序的内存消耗超过限制,如何让我的程序停止?

linux-kernel - 我可以知道在 Linux 内核中 GFP_HARDWALL 标志的目的是什么?

linux - 如何在我的 bash shell 中打印变量 'num'

Python 字符串拆分为查询字符串

linux - 为什么根据 LDD3 device->kobj->parent 等于 &device->parent->kobj?

c - 用c生成奇怪字符的迷宫生成代码

c++ - 掩蔽和转移

使用 C 计算 ASCII 文件中的行数