微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试访问结构文件private_data时出错

如何解决尝试访问结构文件private_data时出错

问题: 我有一个指向结构文件的指针,称为flip,一个int称为cmd,一个无符号长整数,称为arg。 结构文件中的private_data字段 private_data结构的定义如下:

delete='{
    "id": "ID1"
},{
    "id": "ID2"
}'

curl -s -v -X POST --data '{
    "zoneConfig": {
        "userID": "'$userid'","name": "'$myName'","id":"'$id'"
    },"delete": [
        '$deleteValues'
    ]
}' https://urlToAPI

和ioctl函数的定义如下:

{'title': post.css('a.moodalBox.response::text').get()}

但是,当我尝试编译代码时,出现以下警告/错误

typedef struct {
    unsigned char key;
    int read_state;
} my_private_data;

该如何解决

这是打开方法

int my_ioctl(struct inode *inode,struct file *filp,unsigned int cmd,unsigned long arg)
{

    switch (cmd) {
        case CMD_CHANGE_KEY:
            filp->private_data->key = (char)cmd; 
            filp->private_data->read_state = (int)arg; 
            break;
        case CMD_SET_READ_STATE:
            filp->private_data->key = (char)cmd;
            filp->private_data->read_state = (int)arg;
            break;
        case CMD_ZERO:
            kfree(buff_caesar);
            break;
    }
    return 0;
}

解决方法

struct file成员.private_data被定义为void *,因此filp->private_data本身没有成员。如果要将数据项存储到您的结构中,则可以使用该类型的本地变量来访问它们;例如,在my_ioctl()内:

my_private_data *info;
. . .

if (filp->private_data == NULL) {
    error handling
}
info = filp->private_data;
. . .
info->key = (char) cmd;
info->read_state = (int) arg;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。