Linux kernel 为什么IOCTL命令编号在整个系统中应该是唯一的?
我阅读了选择ioctl命令的说明(来自O'Reilly linux设备驱动程序): IOCTL函数的参数之一(来自用户空间)是文件描述符。Linux kernel 为什么IOCTL命令编号在整个系统中应该是唯一的?,linux-kernel,linux-device-driver,ioctl,Linux Kernel,Linux Device Driver,Ioctl,我阅读了选择ioctl命令的说明(来自O'Reilly linux设备驱动程序): IOCTL函数的参数之一(来自用户空间)是文件描述符。 因此,如果我调用特定设备,为什么ioctl命令号在整个系统中应该是唯一的?ioctl CMD不一定在整个系统中都是唯一的。对于特定的设备节点,它应该是唯一的。但通常的做法是在整个系统中维护唯一的CMD,以避免由于向错误的设备发出正确的命令而导致的错误 如果您将特定命令(假设设备-1的无效cmd)传递到能够处理ioctl cmd的错误设备-2,则将获得一些无效
因此,如果我调用特定设备,为什么ioctl命令号在整个系统中应该是唯一的?ioctl CMD不一定在整个系统中都是唯一的。对于特定的设备节点,它应该是唯一的。但通常的做法是在整个系统中维护唯一的CMD,以避免由于向错误的设备发出正确的命令而导致的错误 如果您将特定命令(假设设备-1的无效cmd)传递到能够处理ioctl cmd的错误设备-2,则将获得一些无效数据,而不是错误。为了避免这种情况,我们在整个系统中使用惟一的CMD
The ioctl command numbers should be unique across the system in order to prevent
errors caused by issuing the right command to the wrong device.