Linux内核模式字符串复制

时间:2013-04-08 14:03:50

标签: linux-kernel

在内核模式上搜索字符串副本几分钟后,想到发布一个新问题。

当代码在**内核模式下运行时,什么实用程序可以帮助我进行字符串复制?

我确信那里应该有一些东西,在我当前的项目中,我看到使用memcpy()执行strcpy()函数的代码。

是的,我同意它只是strcpy()的单行代码,但您知道在代码审查中可能不会接受这些代码:)

编辑:我会以更好的方式提出问题, strcpy()是否在内核模式下使用? (比如linux内核2.6及之后)如果是这样,是使用libc还是其他一些工具?

PS: 我看到strcpy()http://livegrep.com/search/linux?q=strcpy用在内核源代码中。

2 个答案:

答案 0 :(得分:7)

我不确定你要找的答案......但是Linux内核提供了strcpy()memcpy()

如果您询问代码审核中如何推荐strcpy()和朋友,您可以使用strncpy()。大多数传统的C字符串函数都已定义,大多数都在include/linux/string.h

中定义

答案 1 :(得分:0)

在Linux源代码树中, lib 子目录中包含各种实用程序功能。有一个 string.c 文件,其中提供了 strcpy() strcasecmp()等功能。

但是,如果您希望通过代码审查的健壮代码,则应尽可能使用某些服务的健壮版本。源代码树中的Documentation指定了不安全的功能以及建议的替代方法:

。使用strscpy()代替strcpy(),strncpy()和strlcpy()
。分别使用kstrtol(),kstrtoll(),kstrtoul(),kstrtoull()代替simple_strtol(),simple_strtoll(),simple_strtoul()和simple_strtoull()