存储大小尚不清楚

时间:2012-08-26 15:22:47

标签: c linux linux-kernel linux-device-driver ioctl

这是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值。

1 个答案:

答案 0 :(得分:2)

struct mesg{
    int pIDs[SIZE];
    int niceVal;
};
     

在创建mesg之前设置SIZE值。

在C SIZE中需要一个真正的编译时常量才能像这样使用它。类似的东西:

#define SIZE 10

您还应该将结构声明移到switch

之外