问题描述
问题: 我有一个指向结构文件的指针,称为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;