免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2312 | 回复: 8
打印 上一主题 下一主题

请给位给我分析下这个关于linux函数参数顺序问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-19 21:56 |只看该作者 |倒序浏览
static int rtc_ioctl(struct inode *inode, struct file *file,
                     unsigned int cmd, unsigned long arg)//这个是RTC驱动里ioctl()的定义。

上面是ioctl()定义。
下面是应用程序中对ioctl的调用。
nt fd3, retval;
        struct rtc_time tm;

        fd3 = open("/dev/misc/rtc",O_RDONLY);
        if (fd3< 0)
        {
                perror("Failed to open magic-key\n");
                exit(1);
        }
        retval = ioctl(fd3, RTC_RD_TIME, &tm);这个地方好奇怪哦
第一,ioctl的参数个数不符合,
第二,参数顺序也不符合。
上面岁magicARM2410 试验箱的代码,运行都没问题。

论坛徽章:
0
2 [报告]
发表于 2009-08-19 22:13 |只看该作者
是通过系统调用的,内核加入了相应的参数。

论坛徽章:
0
3 [报告]
发表于 2009-08-19 22:17 |只看该作者

请给位给我分析下这个关于linux函数参数顺序问题

哦?恩,拿参数的顺序问题呢?谢谢

论坛徽章:
0
4 [报告]
发表于 2009-08-19 22:28 |只看该作者
你说的这个顺序问题是什么问题?不明白。

论坛徽章:
0
5 [报告]
发表于 2009-08-19 22:33 |只看该作者

请给位给我分析下这个关于linux函数参数顺序问题

你好,谢谢您对我帖子的关注,现在终于弄懂了。
刚刚我说的是在i
在驱动中octl()的参数顺序依次是 struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg
但是应用程序调用时候,用户给ioctl()传递的参数依次是fd3, RTC_RD_TIME, &tm。这些参数类型和上面定义的时候参数类型定义的顺序不一样。

论坛徽章:
0
6 [报告]
发表于 2009-08-19 22:41 |只看该作者

回复 #5 feiyinziiu 的帖子

哦,他们俩是不直接打交道的,应用中的是提交个kernel的,然后kernel再调用驱动。所以他们的顺序无关。

论坛徽章:
0
7 [报告]
发表于 2009-08-19 23:18 |只看该作者

回复 #6 llzzccc 的帖子

恩。感谢你,受益匪浅,由于我是跳专业自学的嵌入式,刚刚起步,可能问的问题很傻,多包涵。
谢谢

论坛徽章:
0
8 [报告]
发表于 2009-08-20 00:30 |只看该作者
千万别说什么问题傻,有问题就说明有学点,值得人看看,想想。你说的这个问题我只是说了一个大概,其实可以跟一下code,看看具体是怎么调的,那样学的更多。
我也是一个新手,永远的新手。共同努力。

论坛徽章:
0
9 [报告]
发表于 2009-08-20 01:11 |只看该作者

回复 #8 llzzccc 的帖子

恩,谢谢这位大哥,你的话让我有些感动额。
真诚的说声谢谢。
一直以为论坛里面只有你是“一问一答”的关系,突然发现,论坛里面也有很多感动。
今天去成都的电子市场区买GSM MODEM,去了之后那些商家根本看不上我们,感觉有太多的畏惧,感觉成功好遥远。
不管是处事还是在论坛上,一直都很谨慎,怕别人觉得我技术差,心里有些灰心。
看了大哥的话似乎心里敞开了很多,现在的差,并不代表将来差,学习才是王道。
似乎看到了出头天的日子。
谢谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP