在RAM中创建临时文件,并在Gnuplot中使用它
C++, Gnuplot: Create temporary file in RAM and use it in Gnuplot
我是一个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的循环。
相关文章:
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 如何创建一个空的全局类并在启动时实例化它
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 在函数内部的声明中初始化数组,并在外部使用它
- C++-我可以创建另一个类的成员并在构造函数中使用它吗
- 缓存std::数组的选定元素,并在c++中自动保持其一致性
- 定义C++新的环境变量并在 bat 文件中使用它
- Visual Studio 2017 停止工作,并在打开后显示许多控制台窗口
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 在 c++ 中模拟输入并在 JAVA 中读取它?
- 是否有必要获取锁并在不需要唤醒线程时通知condition_variable?
- 将通用对象传递给 Rust 并在使用后传递回 C++ 进行销毁
- 动态获取 esp32 的 mac 地址并在以太网库中使用它.
- 从.txt文件中读取浮点型数字并在公式中使用它们
- 如何将成员函数作为参数传递并在派生对象上执行方法列表
- 在C++的头文件中使用常量并在程序中询问其地址的任何潜在危险
- C++ 和 Boost.Python - 如何将变量公开给 python 并在循环中更新它?
- 如何在组合框中列出所有可用的 VCL 样式,并在组合框更改事件中应用该样式C++生成器?
- 连接C ++文件和Gnuplot并在执行后自动绘图
- 在RAM中创建临时文件,并在Gnuplot中使用它