分类: C/C++
2008-02-26 15:01:21
/* 主设备号。我们不能再依赖于动态的登记,因为 ioctl 需要知道它。 */
#define MAJOR_NUM 100
#define IOC_VRSCAN_FILE _IOR(MAJOR_NUM , 0, int)
/*
_IOR 意思是我们正在为从用户进程到内核模块的信息创建一个 ioctl 命令号。
ioctl 号用主设备号, ioctl 类型,命令和参数类型编码。这个 ioctl 号通常用一个头文件中的宏调用 (_IO, _IOR, _IOW 或 _IOWR -- 取决于类型)创建。头文件必须被使用ioctl的程序(因此它们可以生成合适的ioctl)及内核模块(因此它可以理解它) #include。 在下面的范例中,头文件是 chardev.h 而使用它的程序是 ioctl.c。
*
* 第一个参数, MAJOR_NUM,是我们使用的主设备号。
*
* 第二个参数是命令号(可能是几个带有不同的意思的)。
*
* 第三个参数是我们想得到的从进程传到内核的类型。
*/
用的时候:ioctl(fd, IOC_VRSCAN_FILE , 5);