10

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

4

2 回答 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 回答