Linux kernel 当存在来自\u用户的复制\u时,get\u用户的应用程序
在Linux内核编程中,我看到get_user和copy_from_user从用户空间执行读取,前面的一个读取固定的1、2或4字节,而后面的一个从用户空间读取任意数量的字节。get_用户需要什么?从_用户复制_是否在get_用户之后,因此为了向后兼容而保留get_用户?get_user是否有特定的应用程序,还是现在已经过时?对put_user和copy_to_user的查询相同。您可以考虑Linux kernel 当存在来自\u用户的复制\u时,get\u用户的应用程序,linux-kernel,operating-system,kernel,Linux Kernel,Operating System,Kernel,在Linux内核编程中,我看到get_user和copy_from_user从用户空间执行读取,前面的一个读取固定的1、2或4字节,而后面的一个从用户空间读取任意数量的字节。get_用户需要什么?从_用户复制_是否在get_用户之后,因此为了向后兼容而保留get_用户?get_user是否有特定的应用程序,还是现在已经过时?对put_user和copy_to_user的查询相同。您可以考虑 copy_from_user(dest, src, size); 作为某种 memcpy(dest, s
copy_from_user(dest, src, size);
作为某种
memcpy(dest, src, size);
大约
get_user(x, ptr);
作为某种简单的赋值:
x = *ptr;
与简单赋值一样,get\u user
是一种比memcpy()
函数调用更干净、更短、更快的方式(对于不理解的代码),get\u user
是一种比copy\u from\u user
更干净、更短、更快的方式
最为人所知的情况是,当数据的大小恒定且较小时(因此get\u user
适用),是设备的ioctl
实现。通过grep
-ingget\u user
的内核源代码,或者使用在线内核代码搜索服务,您可以找到许多get\u user
用法