当有copy_from_user时应用get_user
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当有copy_from_user时应用get_user相关的知识,希望对你有一定的参考价值。
在Linux内核编程中,我看到get_user和copy_from_user执行从用户空间读取,前一个读取固定的1,2或4个字节,而后者从用户空间读取任意数量的字节。 get_user的需求是什么? copy_from_user是否在get_user之后,因此保留了get_user以实现向后兼容性?是否有get_user的特定应用程序或现在已过时?对put_user和copy_to_user的查询相同。
答案
你可以考虑一下
copy_from_user(dest, src, size);
某种程度的
memcpy(dest, src, size);
而且
get_user(x, ptr);
作为某种简单的任务:
x = *ptr;
就像一个简单的任务是一个更清洁(代码未定),比memcpy()
函数调用更短和更快的方式,get_user
是一个更清洁,更短和更快的方式比copy_from_user
。
大多数已知的情况,当数据的大小恒定且很小(因此get_user
适用)时,是设备的ioctl
实现。您可以通过get_user
-grep
的内核源代码,或使用get_user
等在线内核代码搜索服务找到许多Linux Cross Reference用法。
以上是关于当有copy_from_user时应用get_user的主要内容,如果未能解决你的问题,请参考以下文章
内核空间和应用空间的数据拷贝(copy_to_user & copy_from_user)