ioctl命令构建

/*用如下宏来组建命令,保证命令唯一性*/
//一个命令组建的时候包含以下几个部分,有些命令可以带数据
             方向类型序列数据
#define _IOC(dir,type,nr,size) \
    (((dir)  << _IOC_DIRSHIFT) | \
     ((type) << _IOC_TYPESHIFT) | \
     ((nr)   << _IOC_NRSHIFT) | \
     ((size) << _IOC_SIZESHIFT))

/*不带数据的命令组建宏*/
#define _IO(type,nr)        _IOC(_IOC_NONE,(type),(nr),0)
/*带数据的读命令组建宏*/
#define _IOR(type,nr,size)    _IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK(size)))
/*带数据的写命令组建宏*/
#define _IOW(type,nr,size)    _IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
/*带命令的可读可写组建宏*/
#define _IOWR(type,nr,size)    _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))


例如:
#define LED_ON        1
#define LED_OFF        0
可以改为如下组建方法:
#define MAGIC    'L'

#define LED_ON  _IO(MAGIC,1)
#define LED_OFF _IO(MAGIC,0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值