首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

关于驱动中ioctl函数中参数有关问题

2012-06-19 
关于驱动中ioctl函数中参数问题在linux2.6.33内核中,linux驱动程序的ioctl()函数的cmd参数不能为偶数,如果

关于驱动中ioctl函数中参数问题
在linux2.6.33内核中,linux驱动程序的ioctl()函数的cmd参数不能为偶数,如果为偶数,将不调用ioctl()函数;
我在应用层写的程序想设置ioctl()函数中的cmd为2,但是实际没有调用ioctl()函数,
是否在应用层访问驱动层的ioctl()函数必须使用幻数才可以访问,直接定义一个宏偶数访问就出错,请高手帮忙解答,谢谢

[解决办法]
我记得不是所有偶数,因为2在系统中被用到了,你跟踪下ioctl的部分就知道了,所以还是老老实实用幻数吧。
[解决办法]
ioctl用的少,不过印象里应该没偶数一说. 坐等高人解答。

要避开应该不难。 首先看你意思,以前程序跑是没问题的。
那ioctl不动,然他为之前应用程序提供服务。

你在驱动注册 read write函数。 应用层直接用read write来控制读写。
快的话,几分钟应该就改好了。 

(我平时就是用的read write 没用 ioctl ...)
[解决办法]

探讨

引用:

我记得不是所有偶数,因为2在系统中被用到了,你跟踪下ioctl的部分就知道了,所以还是老老实实用幻数吧。

我试过了,用2就不会调用函数,但是我之前的内核和应用层都是这样用的,没有问题,不知道现在为啥不能用,因为应用层的程序不是自己写的,要兼容之前的应用层程序,有没有办法可以避开这个问题呢?

[解决办法]
探讨

引用:

引用:

我记得不是所有偶数,因为2在系统中被用到了,你跟踪下ioctl的部分就知道了,所以还是老老实实用幻数吧。

我试过了,用2就不会调用函数,但是我之前的内核和应用层都是这样用的,没有问题,不知道现在为啥不能用,因为应用层的程序不是自己写的,要兼容之前的应用层程序,有没有办法可以避开这个问题呢?

原因就是ioctl在遇到2的时……

热点排行