关注
我觉得:1
内核开发者可以使用宏来定义新的命令,这个命令可以避免别的预留的命令(在VFS层使用的,比如说你提到的0,1,2这些)产生冲突。
2
使用宏比使用直接的数字更容易不出错,无论是内核的开发者,还是这个设备的使用者,这个跟其他系统调用如kill,signal这些是一个道理。
3
的确你自己定义的文件,随便你写什么命令都可以,与其他类型的文件冲突也没关系,只要不与VFS层的冲突就可以了,也不需要专门定义宏。
4
还要考虑到linux不只有x86一个平台的,同一套iotcl需要跟不同的处理器兼容,直接使用数字的话在处理诸如大小端这类问题很麻烦,而且有些命令在不同的平台上值是不一样的(如_IOC_NONE在sparc上是1,而一般为0),为什么要这样取值我也不知道,详细可以研究相关的处理器架构或者ioctl代码。其实你看看这些宏的定义就清楚了。
5 最后摘抄一段源码的注释:
/* ioctl command encoding: 32 bits total, command in lower 16
bits,
5 * size of the parameter structure in the lower 14 bits of
the
6 * upper 16 bits.
7 * Encoding the size of the parameter structure in the
ioctl request
8 * is useful for catching programs compiled with old
versions
9 * and to avoid overwriting user space outside the user
buffer area.
10 * The highest 2 bits are reserved for indicating the
``access mode''.
11 * NOTE: This limits the max parameter size to 16kB -1 !
12 */
/*
5 * The original linux ioctl numbering scheme was just a
general
6 * "anything goes" setup, where more or less
random numbers were
7 * assigned. Sorry, I was clueless when I started out on
this.
8 *
9 * On the alpha, we'll try to clean it up a bit, using a
more sane
10 * ioctl numbering, and also trying to be compatible with
OSF/1 in
11 * the process. I'd like to clean it up for the i386 as
well, but
12 * it's so painful recognizing both the new and the old
numbers..
13 */
查看原帖
点赞 1
相关推荐
_世界和平:可以偷偷吃肉,但是不要在饥饿的人面前一边吃肉一边吧唧嘴还嫌肉不好吃 点赞 评论 收藏
分享
2025-12-28 22:19
门头沟学院 Java
不敢追165女神:简历写得毫无特点,你说你要是大二或者大三找寒假实习到暑期实习这段时间,你的简历还能约到面试。但是你是研究生哥,面试官不会因为你是研究生而降低要求,反而会觉得你是研究生才学了这么一点?为什么我不找个同阶段的本科生? 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
10680次浏览 148人参与
# 第一次面试 #
1072598次浏览 13734人参与
# 牛客AI体验站 #
17186次浏览 297人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
329154次浏览 2127人参与
# 你喜欢工作还是上学 #
89912次浏览 888人参与
# 被AI治愈的瞬间 #
91124次浏览 690人参与
# 有必要和同事成为好朋友吗? #
1811次浏览 34人参与
# 虾皮求职进展汇总 #
378331次浏览 2795人参与
# 百度求职进展汇总 #
667677次浏览 6293人参与
# 招聘要求与实际实习内容不符怎么办 #
169530次浏览 926人参与
# 如果不上班,你会去做什么 #
29429次浏览 466人参与
# 非技术岗薪资爆料 #
491381次浏览 3047人参与
# 你找工作的时候用AI吗? #
173809次浏览 893人参与
# 产品薪资爆料 #
158981次浏览 855人参与
# 你觉得什么岗位会被AI替代 #
41703次浏览 283人参与
# 考研失败就一定是坏事吗? #
222573次浏览 1543人参与
# 国企vs私企,你更想去? #
320128次浏览 2530人参与
# 我的求职精神状态 #
431896次浏览 3082人参与
# 秋招想进国企该如何准备 #
127582次浏览 620人参与
# 卷__卷不过你们,只能卷__了 #
42321次浏览 669人参与
查看20道真题和解析