0

我对这一切都很陌生。这是我的问题。

根据“FILE *p = _popen”,我从VS2010 c ++打开了一个管道到gnuolot,这似乎在我最终出现图表时起作用。

我有一个无限循环,它被管道打开后的“轻弹开关”破坏,并将命令发送到 int _tmain(int argc, _TCHAR* argv[]) {} 结构中的“gnuplot”

似乎这个循环以某种方式阻止了 gnuplot 中图形的生成,因为它仅在我故意打破无限循环或可能“占用”所有处理器时间时出现。

我的主要最终目标是打开一个到 gnuplot 的管道,然后在 gnuplot 中实时从我的 c++ 程序中绘制一个变量。

4

1 回答 1

0

问题是 stdio 默认缓冲输出到管道。解决方案是:

  1. fflush当您想将数据强制传输到管道时调用。

  2. fflush每次输出操作后调用。

  3. setbuf打开管道后调用,禁用缓冲。

  4. pclose当你完成发送到管道时调用,所有缓冲的数据都将被刷新。

于 2012-11-15T08:30:36.477 回答