免费注册 查看新帖 |

Chinaunix

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

什么时候或场合用ioctl函数? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-08 01:23 |只看该作者 |倒序浏览
正在学Linux设备驱动开发,发现有些驱动文件操作结构体里有ioctl函数,有些又没有

简单google了一下,ioctl是设备驱动程序中对设备的I/O通道进行管理的函数.

我的问题时,什么时候或场合用ioctl函数?什么时候可以不用。

还有,在用ioctl函数的地方,ioctl应该可以控制设备的读和写了,那问什么还要有read和write函数呢,这几个功能没有重叠吗

谢谢先

论坛徽章:
0
2 [报告]
发表于 2010-06-08 03:04 |只看该作者
一般读写操作用READ, WRITE 好了,没必要用IOCTRL.

IOCTL一般是用来改一些硬件设置或者是驱动的设置。当然,也可以用来做任何其他事情。

偶当年在WINDOWS上写的驱动全都是用的IOCTL. 现在想想觉得挺2的。

论坛徽章:
0
3 [报告]
发表于 2010-06-08 07:23 |只看该作者
ioctl函数一般都用在自己写驱动的时候使用

论坛徽章:
0
4 [报告]
发表于 2010-06-08 14:17 |只看该作者
ioctl一般用来做设置硬件的控制寄存器,或者获取硬件状态寄存器的值之类直接控制硬件的活。
read/write一般来说是直接将数据丢进缓冲队列或者从缓冲队列里取数据。毕竟网络设备的接收/发送都是有自己的缓冲区的。然后硬件的驱动从缓冲区读数据一个个的发送或者把接收的数据送入缓冲区,这样可以提高系统的吞吐量。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP