我正在创建一个需要创建多个图形的小型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 OS X上使用graphviz: stable 2.30.1, devel 2.31.20130523.0446
。
与agread
相同的示例反而像魅力一样。
答案 0 :(得分:2)
这是agmemread()中的一个错误。修复程序应于2013年6月18日开始显示在软件包中。感谢您报告。
答案 1 :(得分:1)
在每个图表的结束“}”之后添加“\ n”解决了问题。我还在研究为什么这是必需的,语法上的。