What does '_IO(…)' mean in C headers in Linux?
问题 I have a Linux standard header file e.g. /usr/src/linux-headers-3.2.0-35/include/linux/usbdevice_fs.h which contain define statements as follows: #define USBDEVFS_SUBMITURB32 _IOR('U', 10, struct usbdevfs_urb32) #define USBDEVFS_DISCARDURB _IO('U', 11) #define USBDEVFS_REAPURB _IOW('U', 12, void *) What does '_IOR', '_IO' and '_IOW' mean? What value is actually given e.g. to USBDEVFS_DISCARDURB ? 回答1: They define ioctl numbers, based on ioctl function and input parameters. The are defined in