В настоящее время я использую C ++ для выполнения некоторых вычислений, связанных с графом, используя boost :: graph.boost :: graph может выводить свой граф в виде точечного файла, и я использую std :: stringstream для захвата выходного точечного файла.Таким образом, содержимое файла точек находится в памяти.
Я хочу использовать файл точек для визуализации графика (как можно быстрее).Таким образом, я хочу сгенерировать точечный файл, сгенерировать SVG-файл и распечатать его на холсте.Я хочу избегать использования временных файлов для этого, так как графики должны быть маленькими, а память все равно доступна.
Однако в Graphviz libgraph есть только функция extern Agraph_t *agread(FILE *);
. Единственный способ заставить эту работу работать -взломать дескриптор файла struct __FILE
, который на самом деле не переносим.
Как вы позволите библиотеке читать содержимое вашей памяти как файл в Unix / linux?
Я только что узнал, что libcgraphиз GraphViz позволяет ввести здесь перегруженную версию, но пока документация не указывает мне на какое-то полезное место.