在 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/