这是IOCTL开关案例的一部分。我收到以下错误?
错误:“数据”的存储大小未知 错误:'mesg'未声明(首次在此函数中使用)
case PASS_STRUCT:
struct mesg{
int pIDs[SIZE];
int niceVal;
};
struct mesg data;
ret = copy_from_user(&data, arg, sizeof(data));
if(ret < 0){
printk("PASS_STRUCT\n");
return -1;
}
printk("Message PASS_STRUCT : %d\n",data.niceVal);
break;
在创建mesg之前设置SIZE值。
答案 0 :(得分:2)
struct mesg{ int pIDs[SIZE]; int niceVal; };
在创建mesg之前设置SIZE值。
在C SIZE
中需要一个真正的编译时常量才能像这样使用它。类似的东西:
#define SIZE 10
您还应该将结构声明移到switch
。