_IOC_NR(), _IOC_TYPE(), _IOC_SIZE(), _IOC_DIR() 这几个宏用来取得 cmd 命令中的域,其作用如下:
_IOC_NR() : 读取基数域值 (bit0~ bit7)
_IOC_TYPE : 读取魔数域值 (bit8 ~ bit15)
_IOC_SIZE : 读取数据大小域值 (bit16 ~ bit29)
_IOC_DIR : 获取读写属性域值 (bit30 ~ bit31)
_IOC_NR() 的定义为:
_IOC_NRSHIFT 的值为 0 ;
_IOC_NRMASK 的定义为:
_IOC_NRBITS 的值被定义为 8 ,所以 _IOC_NRMASK 的值为 0xFF 。
其余的宏分析类似。
_IOC_NR() : 读取基数域值 (bit0~ bit7)
_IOC_TYPE : 读取魔数域值 (bit8 ~ bit15)
_IOC_SIZE : 读取数据大小域值 (bit16 ~ bit29)
_IOC_DIR : 获取读写属性域值 (bit30 ~ bit31)
_IOC_NR() 的定义为:
#define _IOC_NR(nr) (((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK)
_IOC_NRSHIFT 的值为 0 ;
_IOC_NRMASK 的定义为:
#define _IOC_NRMASK ((1 << _IOC_NRBITS)-1)
_IOC_NRBITS 的值被定义为 8 ,所以 _IOC_NRMASK 的值为 0xFF 。
其余的宏分析类似。
本文详细介绍了在cmd命令中用于获取不同域的四个关键宏:_IOC_NR(),_IOC_TYPE(),_IOC_SIZE(),_IOC_DIR()。通过解析它们的定义和用途,帮助读者理解如何使用这些宏来解析命令参数。
2959

被折叠的 条评论
为什么被折叠?



