Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux ';魔术';值设备驱动程序_Linux_Driver_Device - Fatal编程技术网

Linux ';魔术';值设备驱动程序

Linux ';魔术';值设备驱动程序,linux,driver,device,Linux,Driver,Device,tty\u驱动程序结构中的“魔力”值是什么 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; ....

tty\u驱动程序结构中的“魔力”值是什么

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;
   ....
   ....

我不明白为什么它被称为“magic”

magic数字通常指用于标识结构、文件类型或软件的特定常量。在这种情况下,tty_驱动程序的幻数显然总是这样定义的:

#define TTY_DRIVER_MAGIC        0x5402
在这种情况下,幻数的一个实际用途可能是检查第一个
sizeof(int)
字节的值,并确保它们
==0x5402
,然后将其余接收字节强制转换为
tty\u驱动程序结构。在这方面,它还可以用于确定报头其余部分的适当字节顺序(小/大端)