用户程序怎么去使用驱动程序ioctl里面的命令字???
如,在驱动程序中定义了一个命令字:#define MEM_READ _IOR(5,0,int)
在应用程序中要使用命令号MEM_READ,怎么弄?直接包好这个头文件可以吗?好像不可以吧!
还有,用户程序能访问或者包含的内核头文件是哪个目录下的?include/目录下的都可以嘛?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
把命令字的定义所在的头文件放到/usr/include/下?我接触没多久,教下:wink: 大哥。
系统调用是用户与内核交互的唯一方式,
ioctl()就是一个系统调用!
我弱弱的问一句,不是通过驱动程序访问ioctr的么?不通过系统调用这么能使用内核的东西呢 那样对系统安全又影响吗?
楼上说的最清楚
这些注册的命令字是要内核空间和用户空间都知道的,因此,怎么处理,你懂的:wink:
应用程序中包括,或头文件中包括既可,内核中有类似的例子。可以参考内核中watchdog例子
回复 1# shaohui973
我自己是把ioctl命令定义在一个单独头文件中,用户空间的程序来包含它。
你直接把这个宏定义到你的程序里不就可以了,或者干脆拿linux内核的头文件,放到你工程下,一切都解决