用户程序怎么去使用驱动程序ioctl里面的命令字???

发布于 2022-09-18 22:19:15 字数 407 浏览 16 评论 9

如,在驱动程序中定义了一个命令字:#define MEM_READ      _IOR(5,0,int)

在应用程序中要使用命令号MEM_READ,怎么弄?直接包好这个头文件可以吗?好像不可以吧!

还有,用户程序能访问或者包含的内核头文件是哪个目录下的?include/目录下的都可以嘛?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

泪意 2022-09-19 07:32:07

这些注册的命令字是要内核空间和用户空间都知道的,因此,怎么处理,你懂的
Godbach 发表于 2011-02-26 15:09

把命令字的定义所在的头文件放到/usr/include/下?我接触没多久,教下:wink: 大哥。

花心好男孩 2022-09-19 07:32:02

系统调用是用户与内核交互的唯一方式,

请止步禁区 2022-09-19 07:31:33

ioctl()就是一个系统调用!

谷夏 2022-09-19 07:30:31

我弱弱的问一句,不是通过驱动程序访问ioctr的么?不通过系统调用这么能使用内核的东西呢 那样对系统安全又影响吗?

握住你手 2022-09-19 07:29:47

楼上说的最清楚

甜`诱少女 2022-09-19 07:28:52

这些注册的命令字是要内核空间和用户空间都知道的,因此,怎么处理,你懂的:wink:

羁拥 2022-09-19 07:21:28

应用程序中包括,或头文件中包括既可,内核中有类似的例子。可以参考内核中watchdog例子

请叫√我孤独 2022-09-19 06:20:51

回复 1# shaohui973
我自己是把ioctl命令定义在一个单独头文件中,用户空间的程序来包含它。

¢蛋碎的人ぎ生 2022-09-19 02:27:27

你直接把这个宏定义到你的程序里不就可以了,或者干脆拿linux内核的头文件,放到你工程下,一切都解决

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文