c++ - 从 C++ 程序打开两个 wxt 终端

标签 c++ xcode macos gnuplot

我有一个 C++ 程序,它包含一个与 gnuplot 一起工作的类方法 plot():

FILE* pipe = popen("/sw/bin/gnuplot -persist","w");
if (pipe != NULL){
    gnuPlotCommand = "load " + scriptFileName + "\n";
    fprintf(pipe, gnuPlotCommand.c_str());
 }
else { ... }
fclose(pipe);

脚本文件本身将终端设置为wxt 并加载数据文件。当我第一次运行调用 obj1.plot() 的程序时,会出现一个带有绘图的窗口。如果我然后运行调用 obj2.plot() 的程序(而不是关闭第一个窗口),则会出现另一个窗口,但两个窗口都被“阻止”(我无法旋转绘图并且无法关闭 window )。如果我成功了

obj1.plot();
obj2.plot();

只出现一个绘图窗口。

当我在单独的 Terminal.app 中启动相同的 gnuplot 脚本时,它工作正常(有两个窗口,它们没有被阻止)。如何使用我的程序实现它?我有 64 位 Mac OS X 10.8 和 XCode,以备不时之需。

更新:

我发现删除 fclose(pipe); 会在 obj1.plot(); 时出现两个窗口; obj2.plot(); 被调用,但其中一个仍然“阻塞”。

最佳答案

这是 gnuplot 中的一个限制。它一次只能打开 1 个交互式绘图(据我所知,x11aquaterm 等存在相同的行为)。如果您想同时拥有 2 个交互式绘图,则需要为您想要的每个交互式绘图生成一个 gnuplot 进程(通过 popen)。

关于c++ - 从 C++ 程序打开两个 wxt 终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13009128/

相关文章:

c++ - Wincrypt : Unable to decrypt file which was encrypted in C#. NTE_BAD_DATA 在 CryptDecrypt

ios - 邮政编码到纬度和经度坐标

ios - XCode 8.1 更改了 Storyboard View 中的常量

macos - 如何在 super View 中移动 subview

macos - Chromium : GN/Ninja - linking to OS X Framework via Build. gn 失败

c++ - C++ 中的泛型函数实现

c++ - 找不到问题 - [错误] ld 返回 1 退出状态

ios - View 随着延迟 swift 消失

macos - 我应该在哪个目录中安装 Google Cloud 的 SDK(以及一般的 SDK)

c++ - 将 C 代码合并到同一个 R 包中