Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何使用get_user()将数据从用户空间发送到内核空间?_Linux_Kernel_Communication_Userspace - Fatal编程技术网

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用户
调用?这是知道如何将用户信息传递给内核的关键。用户空间和内核空间使用不同的虚拟地址空间,这就是havin
copy\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
。非常感谢你的帮助。