在 Linux 中开发内核模块时,不允许使用 C 标准库。
但是,如果我需要使用一些常见的功能,例如strcat()
,我需要去哪里?
问问题
9585 次
2 回答
10
Linux内核中没有实现的东西,你必须自己实现或者借用另一个开源内核模块。但是,您会发现它strcat
是在内核中实现的。
请参阅内核 API文档。特别是针对您的一般问题的基本 C 库函数部分,以及针对您的特定问题的字符串操作strcat
部分。
你会想要包括linux/string.h
.
我不知道为什么内核 API 文档实际上并没有显示您必须包含的头文件才能获取该函数。但是,如果您正在寻找某些东西,则可以将搜索限制在其中,/include/linux
因为如果头文件具有在内核的不同部分之间共享的功能,那就是头文件所在的位置。
外部的头文件/include/linux
仅包含与头文件位于同一目录中的源文件的定义。例外是/arch/.../include
,它将包含特定于体系结构的标头而不是独立于平台的标头。
于 2012-08-17T18:46:40.073 回答
-1
抱歉@eq - 考虑另一个功能。
为什么不
void (char *d, const char *s);
{
if (*d)
{
for (; *d; ++d) {} ;
--d;
}
strcpy(d, s);
}
strcpy
如果你愿意,我可以
于 2012-08-17T18:38:27.887 回答