在Linux中开发内核模块时,不允许使用C标准库。
但是,如果我需要使用strcat()
等一些常用功能,我需要去哪里?stdlib.h在Linux内核中的替代?
回答
不管是不是在Linux内核中实现我能做strcpy
,你必须自己实现或从其他开源内核模块借款。但是,您会发现在内核中实现了strcat
。
查看kernel API文档。特别是Basic C Library Functions部分为您的一般问题,和String Manipulation部分为您的具体问题strcat
。
你会想要包括linux/string.h
。
我不知道为什么内核API文档没有实际显示必须包含的头文件才能获得该函数。但是,如果你正在寻找一些东西,你可以限制你的搜索到/include/linux
,因为如果头文件具有在内核的不同部分之间共享的函数,头文件就是这样。
/include/linux
以外的头文件仅包含与头文件位于同一目录中的源文件的定义。 /arch/.../include
是个例外,它将包含体系结构特定的头文件而不是独立于平台的头文件。
对不起@eq - 思考另一个功能。
为什么不
void (char *d, const char *s);
{
if (*d)
{
for (; *d; ++d) {} ;
--d;
}
strcpy(d, s);
}
,如果你想
@indiv - 糟糕的是思想是对的。这些功能可以轻松实现。 – 2012-08-17 19:07:19
我们都很开心 - 尽管一个字符串函数需要一个库?! – 2012-08-17 19:11:44
...是用C编写的Linux内核吗? – 2012-08-17 19:15:08
- 1. 哪个函数可以代替Linux内核2.6.32中的“create_proc_info_entry”?
- 2. Linux内核路由器代码替换MAC地址的位置
- 3. 在Linux内核中抢占
- 4. asm__volatile()在Linux内核
- 5. setscheduler()在Linux内核
- 6. 剥离Linux中的内核?
- 7. linux内核的config.h
- 8. 替代文件在Linux中
- 9. 目的在Linux内核中wake_up_sync/wake_up_interruptible_sync的
- 10. 启动时内核模块在Linux内核中的状态
- 11. 替代pyhook在Linux?
- 12. __init在Linux内核代码中的含义是什么?
- 13. Linux内核中的ARP源代码在哪里?
- 14. 在linux中的内核源代码位置
- 15. linux内核路径走。 lookup_slow交代
- 16. Linux内核代码空间写保护
- 17. Linux内核中的内存损坏
- 18. 安装在Linux内核
- 19. linux内核中断劫持
- 20. 在Linux内核中跟踪中断
- 21. Linux内核启动在Uncompressing Linux中停止...好吧,启动内核
- 22. 如何在内核模块中打印linux内核版本号
- 23. 内核定时器的例子在Linux中的实现(在内核2.6.32中)
- 24. Linux网络内核
- 25. 配置Linux内核
- 26. glib和linux内核
- 27. Linux内核调试
- 28. Linux内核调度
- 29. 构建Linux内核
- 30. Linux内核调度
是否有这些类型的功能保存在头文件的列表? (就像你提到的'linux \ string.h') – Fairview 2012-08-17 19:09:13
@Fairview:不是我能找到的,这很奇怪。我想你必须在内核API中找到你想要的函数,然后在'/ include/linux'中搜索它。我在关于内核头文件的回答中添加了更多细节,并且为什么你可以限制你的搜索到'/ include/linux'及其子目录。 – indiv 2012-08-17 20:30:50