5

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

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

我确定那里应该有一些东西,并且在我当前的项目中,我看到使用memcpy()具有strcpy().

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

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

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

4

2 回答 2

10

我不确定您正在寻找什么作为答案...但是 linux 内核提供strcpy()memcpy()

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

于 2013-04-08T14:25:45.370 回答
1

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

但是,如果您想要一个通过代码审查的健壮代码,您应该尽可能使用某些服务的健壮版本。源代码树中的文档指定了不安全的功能和建议的替换:

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

于 2020-12-09T18:45:45.140 回答