【问题标题】:how to use get_user to copy data from user space to kernel space如何使用 get_user 将数据从用户空间复制到内核空间
【发布时间】:2014-02-17 11:33:39
【问题描述】:

我想将一个整数变量从用户空间复制到内核空间。 谁能给我一个简单的例子如何做到这一点? 我开始知道我们可以使用 get_user 但我不知道如何..

【问题讨论】:

  • IOCTL 是一种在用户和内核空间之间传输数据的方法。

标签: linux-kernel linux-device-driver


【解决方案1】:

检查mancopy_to_usercopy_from_user 的页面。
编写一个简单的内核模块,带有read/write 操作,并为它们注册和字符设备,例如/dev/sample
在此应用程序打开的fd 上执行应用程序write/read
现在您需要实现将这些数据传输到内核空间并读回返回的任何内容的机制。
- 在write 中,您执行copy_from_user,在此检查通过之前,缓冲区是否有效。
- 在read 你做一个copy_to_user
确保处理错误条件,open 调用实现应该跟踪有多少opens,如果你想实现多个打开,并且这个计数应该减少,当应用程序调用close on打开FD.
你关注了吗?

【讨论】:

  • 你能把过程解释得更详细些吗?我很难理解这一点。谢谢
猜你喜欢
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-03
  • 2011-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多