'魔术'价值设备驱动程序

时间:2014-01-22 23:41:29

标签: linux driver device

tty_driver struct

中的'魔术'值是多少?
struct tty_driver {
   int     magic;          /* magic number for this structure */
   struct kref kref;       /* Reference management */
   struct cdev cdev;
   struct module   *owner;
   const char      *driver_name;
   ....
   ....

我不明白为什么它被称为'魔术'

1 个答案:

答案 0 :(得分:0)

幻数通常指的是识别结构,文件类型或软件的特定常量。在这种情况下,tty_driver的幻数显然总是这样定义:

#define TTY_DRIVER_MAGIC        0x5402

在这样的上下文中使用幻数的一个实际用途可能是检查第一个sizeof(int)字节的值,并在将剩余的接收字节转换为{{== 0x5402之前确保它们tty_driver struct 1}}。在这方面,它也可能用于确定标题其余部分的适当字节顺序(小/大端)。