在Linux中开发内核模块时,不允许使用C标准库
但是,如果我需要使用strcat()
等常用功能,我还需要去哪里?
答案 0 :(得分:9)
无论Linux内核中没有实现什么,您必须自己实现或从另一个开源内核模块借用。但是,您会发现内核中已实现strcat
。
请参阅kernel API文档。特别是针对您的常规问题的Basic C Library Functions部分,以及针对strcat
的具体问题的String Manipulation部分。
您需要加入linux/string.h
。
我不知道为什么内核API文档实际上没有显示您必须包含的头文件来获取该函数。但是,如果您正在寻找某些内容,则可以将搜索限制为/include/linux
,因为如果头文件具有在内核的不同部分之间共享的函数,那么这就是头文件所在的位置。
/include/linux
之外的头文件仅包含与头文件位于同一目录中的源文件的定义。例外是/arch/.../include
,它将包含特定于体系结构的标头,而不是与平台无关的标头。
答案 1 :(得分:-1)
对不起@eq - 考虑另一个功能。
为什么不
void (char *d, const char *s);
{
if (*d)
{
for (; *d; ++d) {} ;
--d;
}
strcpy(d, s);
}
如果你愿意,我可以strcpy