我正在尝试阅读从应用程序发送的ioctl参数。但在驱动程序端,即使我发送不同的值,cmd和arg(第3和第4个参数)值也会相同。两个参数都显示了来自应用程序的参数值。任何人都可以帮我解决这个问题吗? 我的代码: 应用:ioctl(fd,0,1)。 驱动程序ioctl:cmd = 1。 arg = 1。
int char_ioctl(struct inode *inode_num, struct file *fp, unsigned int cmd, unsigned long arg)
{
int ret = 0,i;
printk("cmd : %d\n",cmd);
printk("arg : %d\n",(unsigned long)arg);
switch(cmd)
{
case GETCAPACITY:
ret = BUFFER_MAX_SIZE;
break;
default :
break;
}
return ret;
}