有可能" print" gnuplot直接输出到STDOUT?

时间:2015-06-18 12:19:10

标签: c++ gnuplot

我正在使用名为 gnuplot-iostream 的第三方实用程序在Web应用程序的后端从C ++调用gnuplot。该Web应用程序在CGI下执行,因此任何转到STDOUT的内容都是浏览器的结果。在这种情况下,Web请求将用于图像本身,因此输出前面会有一些HTTP标头,包括Content-Type image/png

我希望能够通过STDOUT直接管理GNUPlot的输出,而不是having gnuplot write to a temporary file, then read that file back into memory and stream its contents to STDOUT,但是我无法看到让gnuplot除了写入磁盘上的图像文件,或打开X11窗口。

这可能吗?

2 个答案:

答案 0 :(得分:3)

在gnuplot脚本中,只是不要设置输出文件以将图像内容定向到stdout:

gnuplot -e 'set terminal pngcairo; plot x' > myfile.png

我不完全确定,必须如何与gnuplot-iostream集成。

答案 1 :(得分:1)

写入命名管道?你使用mkfifo做出的那种?

我使用了以下结合mkfifomktemp的愚蠢技巧:

FOO=$(mktemp -d)
mkfifo "$FOO/bar"
# pipe some stuff through "$FOO/bar"
rm -r "$FOO"

请记住,一旦你拥有它,没有什么可以阻止你通过相同的命名管道。