私はC++プログラムを持っています。これには、以下でplot()
動作するクラスメソッドが含まれていgnuplot
ます。
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()
すると、別のウィンドウが表示されますが、両方のウィンドウが「ブロック」されます(プロットを回転できず、ウィンドウを閉じることができません)。そして私がそれを作るなら
obj1.plot();
obj2.plot();
単一のプロットウィンドウのみが表示されます。
gnuplot
別々ので同じスクリプトを起動するとTerminal.app
、正しく機能します(2つのウィンドウがあり、それらはブロックされていません)。プログラムを使用してそれを達成するにはどうすればよいですか?重要な場合に備えて、64ビットのMac OSX10.8とXCodeを使用しています。
アップデート:
を削除すると、が呼び出されfclose(pipe);
たときに2つのウィンドウが表示されることを発見しましたが、そのうちの1つはまだ「ブロック」されています。obj1.plot(); obj2.plot();