【问题标题】:why copy_to_user() is required?为什么需要 copy_to_user() ?
【发布时间】:2014-06-13 12:44:53
【问题描述】:

众所周知,内核也可以访问用户空间。因此,它不需要特殊功能 - copy_to_user()。那为什么需要呢?内核可以直接访问用户空间地址。不是吗?

【问题讨论】:

    标签: kernel linux-device-driver kernel-module


    【解决方案1】:

    因为内核不希望用户空间在处理相同数据时修改传递的数据。

    从/复制到用户

    1. 验证缓冲区

    2. 将缓冲区复制到用户/从用户复制,因此不必担心数据在用户空间中被更新。

    【讨论】:

      【解决方案2】:

      请注意,在某些架构上,它不是用简单的memcpy() 实现的:

      【讨论】:

      • 如果您要添加一些有关此函数的功能的详细信息,而不是简单的 memcpy(),我很乐意为您投票。
      猜你喜欢
      • 2012-04-16
      • 1970-01-01
      • 2019-06-09
      • 2017-10-24
      • 2020-05-03
      • 2020-03-22
      • 2011-08-11
      • 2019-06-09
      • 2012-05-21
      相关资源
      最近更新 更多