【问题标题】:application of get_user when there is copy_from_user有 copy_from_user 时的 get_user 应用
【发布时间】:2016-01-15 22:31:21
【问题描述】:

在 Linux 内核编程中,我看到 get_usercopy_from_user 执行从用户空间读取,前一个读取固定的 1、2 或 4 个字节,而后者读取任意数量的字节从用户空间。 get_user 需要什么? copy_from_user 是否出现在 get_user 之后,因此保留 get_user 是为了向后兼容? get_user 是否有特定的应用程序,或者它现在已经过时了? put_user 和 copy_to_user 的查询相同。

【问题讨论】:

    标签: linux-kernel operating-system kernel


    【解决方案1】:

    你可以考虑

    copy_from_user(dest, src, size);
    

    某种意义上的

    memcpy(dest, src, size);
    

    关于

    get_user(x, ptr);
    

    作为某种简单的分配:

    x = *ptr;
    

    就像 简单的赋值memcpy() 函数调用更简洁(用于代码理解)、更短和更快的方式,get_user 比@987654328 更简洁、更短和更快的方式@。

    最广为人知的情况是,当数据大小恒定且很小(因此get_user 适用)时,设备的ioctl 实现。您可以通过grep 找到许多get_user 的用法 - 查找get_user 的内核源代码,或使用Linux Cross Reference 等在线内核代码搜索服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-05
      • 2016-07-13
      • 1970-01-01
      • 2013-12-24
      相关资源
      最近更新 更多