linux 驱动开发 编写linux系统驱动函数中的IOCTL函数时,CMD参数为什么要使用幻数?

编写linux系统驱动函数中的IOCTL函数时,CMD参数为什么要使用幻数?Linux驱动程序上IOCTL函数的CMD由一个32位字段组成,它分为四个部分:1)类型或幻数,8位,2)序数,8位,3)方

编写linux系统驱动函数中的IOCTL函数时,CMD参数为什么要使用幻数?

Linux驱动程序上IOCTL函数的CMD由一个32位字段组成,它分为四个部分:1)类型或幻数,8位,2)序数,8位,3)方向,即从内核空间到用户空间,或从用户空间到内核空间,4)大小,指示需要读取和写入的参数大小。通常,Linux内核会自动过滤CMD的一些非法定义。例如,如果定义1,2,并且CMD为1,2,则没有类型、数字、方向和大小。Linux内核将自动过滤出IOCTL请求,如果IOCTL根本没有转到驱动程序IOCTL,那么它将返回一个错误。