我是C ++的初学者。假设我有一个输出函数的C ++程序,例如f(x)=x*x
,并且我需要对其进行评估和打印。这可以在代码中轻松完成。
是否可以在RAM中使用评估结果创建一个临时文件?与之类似,它很可能是一个std::vector
,因此它将驻留在堆中(否?)。
然后,是否有可能使用system()
(或代码中的任何内容)gnuplot
从内存中调用文件?
而且,作为最后的想法,可以在没有外部虚拟RAM磁盘的情况下完成这两个操作吗?
因此,在Linux中,使用管道,您可以做以下第一个示例:
cat data.txt | gnuplot -p -e "plot '-' w l"
其中data.txt是两列文件。除了该文件之外,您还可以让程序生成一些数据,并且可以为gnuplot添加一个额外的设置,以使其更加复杂:
./program | gnuplot -p -e "set ylabel 'E'; plot '-' w l"
现在,这就是您所需要的。请注意,在命令之间需要-p
= persistent,-e
= interactive(?)和分号(;
)。类似的东西可能会在Windows中工作。我希望这会有所帮助。
多余的东西:如果您有很多设置,可以将它们放在文件中,例如:
$ cat settings.txt
set logs;
set ylabel "hejsan";
set xlabel "energy";
plot '-' w l
然后:
./program | gnuplot -p -e "$(<settings.txt)"
不要错过任何符号"$(<filename)"
!不过,这可能仅适用于Linux中的Bash shell。您可以尝试cygwin
环境。或者只是安装ubuntu。
一周后编辑
万一您想这样做来保存您的SSD,它当然不会受到伤害,但可能并不重要。SSD具有智能管理功能,因此不会每次都写入相同的物理段。该文件将“四处移动”,并且它们被构建为可以持续数百TB的循环寿命。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句