现在的位置: 首页 > 综合 > 正文

kernel对应的c库实现

2013年10月17日 ⁄ 综合 ⁄ 共 807字 ⁄ 字号 评论关闭

对于普通应用程序,可以通过包含头文件stdlib.h和stdio.h,string.h等,然后调用需要的itoa(),atoi()等函数,

但是对于Linux内核来说,无法使用那些C库中的函数。Linux内核里有相应的实现:

对于atoi()用simple_strtol() ,simple_strtoul()等函数替代;
对于itoa(),用snprintf()。

其他相关函数,自己去看/lib/vsprintf.c。
比如:

simple_strtoul,simple_strtol,simple_strtoull,strict_strtoul,strict_strtol,strict_strtoull,strict_strtoll,vsnprintf,vscnprintf

另外,对于常见的字符相关处理函数,都在/lib/string.c中:

strnicmp,strcasecmp,strncasecmp,strcpy,strncpy,strlcpy,strcat,strncat,strlcat,strcmp,strncmp,strchr,strrchr,strnchr,strstrip,strlen,strnlen,strspn,strcspn,strpbrk,strsep,sysfs_streq

以及内存相关操作函数:

memset,memcpy,memmove,memcmp,memscan,strstr,memchr

【引用】

1。Re: Itoa and atoi functions in kernel space

http://mail.nl.linux.org/kernelnewbies/2005-07/msg00417.html

2。内核中可以引用stdlib.h和stdio.h吗?

3.基本C库函数.htm

http://www.kerneltravel.net/kernel-book/目录下的

3.基本C库函数.htm

抱歉!评论已关闭.