Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ioctl参数值(cmd和arg)显示相同,即使我发送了不同的值_C - Fatal编程技术网

Ioctl参数值(cmd和arg)显示相同,即使我发送了不同的值

Ioctl参数值(cmd和arg)显示相同,即使我发送了不同的值,c,C,我正在尝试读取应用程序发送的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

我正在尝试读取应用程序发送的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; 
}

你能发布驱动程序ioctl功能吗?你能给我们更多的代码吗?尝试制作一个最小的自包含示例。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\u MAX\u SIZE;break;default:break;}return ret;}请查找添加在驱动程序ioctl函数上方的驱动程序ioctl代码正在被调用,并且正在打印相同的cmd和arg值。