如何使用 Graphviz 和 libcgraph 获取节点名称?

How to get the node name with Graphviz and libcgraph?

我正在尝试更新一些旧代码,这些代码曾经与 Graphviz 2.26 一起使用并迭代了图形的所有节点并使用它们的名称做了一些事情:

for (Agnode_t *n = agfstnode(graph); n; n = agnxtnode(graph, n)) {
    ... use n->name ...
}

然而,在 Graphviz 的最新(2.30+?)版本中,cgraph 库用于节点表示,它的 Agnode_t 结构中没有 name 字段。

我知道 agnode() 函数允许按名称查找节点,但似乎没有任何函数可用于其他方向。我是不是遗漏了什么或者真的没有办法使用 cgraph 访问现有节点的名称?

您可以使用函数 agnameof,它列在 cgraph 联机帮助页的 "Generic Objects" 部分:

char      *agnameof(void*);