С Понимание ядра Linux :
ядро Linux определяет структуру данных list_head, единственные поля next и prev которой представляют прямой и обратный указатели универсального двусвязного указателяэлемент списка соответственно.Однако важно отметить, что указатели в поле list_head хранят адреса других полей list_head , а не адреса всех структур данных, в которые включена структура list_head ;см. Рисунок 3-3 (a).
Почему указатели в поле list_head хранят адреса других полей list_head, а неадреса целых структур данных, в которые включена структура list_head?
Учитывая указатель на объект list_head
, как я могу получить объект структуры данных (такой как «структура данных 1»), которая содержит объект list_head
?Например, Как я могу получить дескриптор процесса из PID в ядре Linux?
Если бы он был на языке OO, то поля list_head, вероятно, были бы частными в данныхструктуры, в которые включена структура list_head?Так что более разумно, чтобы указатели в поле list_head хранили адреса целых структур данных, в которые включена структура list_head, чем адреса других полей list_head?