???????????

???????????linux??????????璞�?????????????璞�?????璞�???????????????????????????????????????????????????????????璞�???????

????????Linux????????璞�??????

????Linux???璞�?????????????????????????璞�?????????????????/dev???锟�?????璞�???????贸??????????????写??些?璞�??????????璞�?????????????????????????????????????些?璞�??????璞�??????????璞�?????????璞�?????璞�??????璞�??????????????????璞�???????璞�????????????????????璞�??????????璞�??Linux????????????????????璞�?????璞�????4??

?????璞�?????????

??????????校?dev_t  ????( ?? <linux/types.h>?????卸??? ) ????????璞�??????????璞�?????璞�????????????? 2.6.x????dev_t???32位???????懈?12位??????????璞�?????20位??????????璞�???

?????? linux/types.h ??????????

????typedef __kernel_dev_t          dev_t;
????typedef __u32 __kernel_dev_t;

???????璞�?????璞�?????

???????写??????????????????????????璞�?????璞�???位?????????????校????璞�?????璞�???位???????????????????MAJOR???????璞�??????MINOR??????????璞�??????????????????澹�??linux/kdev_t.h??

????#define MINORBITS   20                                 /*???璞�??*/
????#define MINORMASK   ((1U << MINORBITS) - 1)            /*???璞�??????*/
????#define MAJOR(dev)  ((unsigned int) ((dev) >> MINORBITS))  /*dev????20位??????璞�??*/
????#define MINOR(dev)  ((unsigned int) ((dev) & MINORMASK))   /*????璞�????????????璞�??*/

????MAJOR??dev_t???????20位????????璞�???MINOR??dev_t???12位??????????璞�???????????????璞�?????璞�???????璞�???????dev_t??????煤?MKDEV???????????????

????#define MKDEV(ma??mi) (((ma) << MINORBITS) | (mi))

????MKDEV?????璞�???ma??????20位?????????璞�???mi?????????璞�??

???????????璞�?????????????璞�?????璞�????????

????Linux???????????????????????璞�???????????璞�????????????????????璞�??????

????????????????????璞�???key???????????????????????????????????璞�???璞�??????????????????????璞�????????????????璞�?????????????????????璞�???????璞�?????????????写??????????????????????????????????璞�??????????????????璞�?????????????????????璞�????????????????????????????????????????璞�????????椤�??????????

?1????贸??????open?????????璞�????????????