list_for_each(pos, head)

  • pos、head 都为list类型
  • 一般来说,head是list的虚拟头,依次取list上的各个节点

container_of(ptr, type, member)

  • ptr:现已知的指针
  • type:要求的结构体类型
  • member:指针在结构体中的名称
  • 该宏用于在已知结构中某个成员地址的情况下,求得结构体的起始地址

两个连用

haproxy中结构体间常含list成员,用于将多个节点串在一起,在依次取各节点成员的时候,需要上述两个宏搭配使用。

list_for_each(pos_scad, sp->current_server_cad) {
	s_cad = container_of(pos_scad, struct server_cad, srv_link);
}

依次取得各server_cad的地址,方便下面对该节点进行取值或赋值。

相关文章:

  • 2021-07-24
  • 2022-12-23
  • 2021-08-31
  • 2021-08-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-09
猜你喜欢
  • 2021-10-13
  • 2022-12-23
  • 2021-11-12
  • 2021-05-29
  • 2021-10-22
  • 2021-11-01
  • 2022-01-20
相关资源
相似解决方案