Linux内核中的stdlib.h替代方案?

时间:2012-08-17 18:14:48

标签: c linux kernel

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

2 个答案:

答案 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