标签:
一,注册字符设备
二,注意点:
read和write函数的参数 buff是用户空间的指针,因此内核代码不能直接引用其中的内容,主要原因如下:
1,在内核模式运行时,用户空间的指针可能是无效的
2,用户空间是分页的,涉及的内容可能不在RAM中,对用户空间的内存直接引用可能导致页错误
3.指针是用户空间提供的,可能存在缺陷。
copy_to_user()和copy_from_user()两个函数除了在内核空间和用户空间进行数据拷贝,还会检查用户空间的指针是否有效,如果指针无效则不拷贝,如果拷贝过程中遇到无效地址,则仅仅会复制部分数据,,在这两种情况下返回值是还需要拷贝内存数量的值。
标签:
原文地址:http://www.cnblogs.com/zhiliao112/p/4237233.html