複数のグラフを作成する必要がある小さな C プログラムを作成しています。これらのグラフのドットは文字列になっているため、agmemread代わりに使用していますagread(一時ファイルの作成を避けたい)。agmemreadただし、複数回呼び出すと壊れるようです。
次の例では "error2" が出力されるため、2 回目の呼び出しで失敗します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;
}
実際の例では、もちろん、これらのセクションの間にさらにコードがいくつかあります。
2 回目に agmemread を呼び出す前に、何かを解放またはクローズする必要がありますか? それともgraphvizのバグですか?graphviz: stable 2.30.1, devel 2.31.20130523.0446Mac OS Xで使用しています。
代わりの同じ例agreadは魅力のように機能します。