什么是相当于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);
使用常量字节值
c
在s
处填充给定内存区域的前n
字节。 如果要将内存映射I / O内存的区域设置为常量值,则必须使用memset_io()
函数。返回指向
s
的指针。
进行更多调查……如果你查看
来源,你可以找到:
#include /* for memset() and memcpy() */
…还有memset_io()
函数的定义,所以我猜这应该是正确的#include
。