IS_ERR返回错误原因class_create

struct class *cls;
 
    cls = class_create(THIS_MODULE, "sdev");
    if(IS_ERR(cls)){
        return PTR_ERR(cls);
    }
 
 
 
解析:
创建设备节点使用了两个函数 class_create()和class_device_create()。在__exit()函数里,对应的使用class_destory()和class_device_destory()注销创建的设备节点。
但是在编译的时候,发现报错:implicit declaration of function ‘class_device_create’ 。
原因:在早期Linux的版本使用的是 class_device_create() 和 class_device_destory()。但是在Linux2.6.29以后,使用的函数变成了 class_create()和device_create(),并且需要添加头文件:#include <linux/device.h> 。
 
最终原因:
#include <linux/device.h>
没有加头文件 上面代码居然 错误返回
 

posted on 2021-04-01 00:10  lydstory  阅读(270)  评论(0)    收藏  举报

导航