ioctl构造命令的问题

babetter 2006-06-04 04:19:19
使用_IOW()宏构造一个命令,最后一个参数应该是ioctl向内核传入参数的大小,一般是一个结构体类型。如果我想传递的参数是一个字符串,(例如定义为char name[NAME_LEN],这个参数长度在_IOW()中应该如何设置呢?是否必须封装成结构体呢?
...全文
288 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
float_sky 2006-06-06
  • 打赏
  • 举报
回复
参数长度无需在_IOW()中设置。
如果字符串是一个定长的字符数组,那么只要上层应用和驱动程序都知道数组的长度,就不用封装成结构体。只需把字符指针name作为最后一个参数传入,驱动程序使用copy_from_user拷贝NAME_LEN个字节即可。
如果字符串是变长的,不知道最大长度,封装成一个结构体会比较方便。
zdhzidy 2006-06-06
  • 打赏
  • 举报
回复
我觉得还是封装成一个结构比较好,这样不但方便以后扩展,程序写起来也比较清晰

4,468

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧