copy_to_user和copy_from_user是在进行l驱动相关程序设计的时候,要经常遇到的函数。因为内核空间与用户空间的内存不能直接互访,所以借助函数copy_to_user()完成内核空间到用户空间的复制,函数copy_from_user()完成用户空间到内核空间的复制
copy_to_user和copy_from_user函数中都有三个参数,如下:
- unsigned long copy_to_user (void __user * to, const void * from, unsigned long n);
to 目标地址,这个地址是用户空间的地址;
from 源地址,这个地址是内核空间的地址;
n 将要拷贝的数据的字节数。
- unsigned long copy_from_user (void * to, const void __user * from, unsigned long n);
to 目标地址,这个地址是内核空间的地址;
from 源地址,这个地址是用户空间的地址;
n 将要拷贝的数据的字节数。