什么是相当于memset函数的Linux内核?

我正在编写一个驱动程序,要求我清除分配给零的所有内存。 memset是一个用户空间函数,但我想知道内核是否提供了一个可以帮助我做到这一点的宏。

根据这个线程和人们在这里评论使用它, memset在内核代码中可用。 也许你只是忘了

 #include  

这是真的memset() in

 include  

不应该出现在内核代码中。事实上,在驱动程序开发过程中追踪memset()位置可能会花费很多。 实际上memset()的定义是

 #include 

它说:

 #ifndef __KERNEL__ #include  #else /* We don't want strings.h stuff being used by user stuff by accident */ 

希望这有助于你100%确定地输入’memset()’:)

我在一本Linux驱动程序开发书中查了一下(它是德语,所以我会给它基本上说的松散翻译),它给出了以下描述:

 #include  void *memset(void *s, int c, size_t n); 

使用常量字节值cs处填充给定内存区域的前n字节。 如果要将内存映射I / O内存的区域设置为常量值,则必须使用memset_io()函数。

返回指向s的指针。


进行更多调查……如果你查看来源,你可以找到:

 #include  /* for memset() and memcpy() */ 

…还有memset_io()函数的定义,所以我猜这应该是正确的#include