对于普通应用程序,可以通过包含头文件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吗?

http://linux.chinaunix.net/bbs/viewthread.php?tid=910745

Logo

更多推荐