我正在使用名为 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窗口。
这可能吗?
答案 0 :(得分:3)
在gnuplot脚本中,只是不要设置输出文件以将图像内容定向到stdout:
gnuplot -e 'set terminal pngcairo; plot x' > myfile.png
我不完全确定,必须如何与gnuplot-iostream集成。
答案 1 :(得分:1)
写入命名管道?你使用mkfifo
做出的那种?
我使用了以下结合mkfifo
和mktemp
的愚蠢技巧:
FOO=$(mktemp -d)
mkfifo "$FOO/bar"
# pipe some stuff through "$FOO/bar"
rm -r "$FOO"
请记住,一旦你拥有它,没有什么可以阻止你通过相同的命名管道。