Linux 如何使用get_user()将数据从用户空间发送到内核空间?
我已经计算了用户空间中一个参数的值,并希望将整数值传递给内核空间。我知道我必须使用Linux 如何使用get_user()将数据从用户空间发送到内核空间?,linux,kernel,communication,userspace,Linux,Kernel,Communication,Userspace,我已经计算了用户空间中一个参数的值,并希望将整数值传递给内核空间。我知道我必须使用get\u user(x,ptr),但我不确定如何提供指向内核模块的指针 我的用户空间代码中有一个整数变量,我可以找到指向它的指针。但是,我应该事先知道指针,以便在内核代码中使用它。我是否需要为整型变量分配一个特定的内存位置(即0x…),以便在两种代码中都使用它,或者有其他解决方法 我希望此数据传输具有尽可能小的开销。您使用什么系统调用来获得该get\u用户调用?这是知道如何将用户信息传递给内核的关键。用户空间和内
get\u user(x,ptr)
,但我不确定如何提供指向内核模块的指针
我的用户空间代码中有一个整数变量,我可以找到指向它的指针。但是,我应该事先知道指针,以便在内核代码中使用它。我是否需要为整型变量分配一个特定的内存位置(即0x…),以便在两种代码中都使用它,或者有其他解决方法
我希望此数据传输具有尽可能小的开销。您使用什么系统调用来获得该
get\u用户
调用?这是知道如何将用户信息传递给内核的关键。用户空间和内核空间使用不同的虚拟地址空间,这就是havincopy\u to\u User()
和copy\u from\u User()
函数的原因。请编辑您的问题,显示一些代码,或者解释如果不是系统调用,您是如何从用户空间执行内核代码的。我正在尝试在/proc中创建一个条目,并从用户空间读取其内容,然后在那里执行get\u user
。我现在正忙于创建条目。我将很快更新我的问题。好的,那么您将通过读取(2)系统调用以文本格式传递信息,对吗?我创建了/proc条目,我正在执行cat myproc
来测试读取操作。它适用于copy_to_user,但不适用于put_userI。我知道了如何解决这个问题。我在内核模块中创建了一个proc条目,并定义了读写函数。然后,我分别在读和写函数中调用put\u user
和get\u user
。非常感谢你的帮助。