我正在创建一个小的C程序,它需要创建多个图形。这些图的点在字符串中,所以我使用agmemread而不是agread (我想避免创建临时文件)。但是,当多次调用agmemread时,它似乎会中断。
下面的示例输出"error2",因此在第二次调用agmemread时失败
#include <gvc.h>
int main() {
Agraph_t *g1 = agmemread("graph testgraph {\n\n}");
if (!g1) {
printf("error1\n");
return 1;
}
agclose(g1);
Agraph_t *g2 = agmemread("graph testgraph {\n\n}");
if (!g2) {
printf("error2\n");
return 1;
}
agclose(g2);
return 0;
}在一个真实的例子中,当然在这些部分之间会有更多的代码。
在第二次调用agmemread之前,我需要释放或关闭任何东西吗?或者它是一个graphviz的Bug?我在Mac上使用graphviz: stable 2.30.1, devel 2.31.20130523.0446。
同样的例子也适用于agread,但效果却很好。
发布于 2013-06-18 05:46:49
这是agmemread()中的一个bug。从2013年6月18日开始,修复程序应该出现在包中。感谢您的报道。
发布于 2013-06-14 05:22:24
在每个图的闭合"}“后添加"\n”可以解决此问题。我仍然在调查为什么语法上需要这样做。
https://stackoverflow.com/questions/16961826
复制相似问题